盡管對于大多數場景,幾乎所有的被BeanFactory治理的用戶代碼不需要知道BeanFactory,但是BeanFactory還是不得不實例化。這一步可以通過如下清楚的用戶代碼發生: InputStream is = new FileInputStream("beans.xml"); XmlBeanFactory factory = new XmlBeanFactory(is); 或者: ClassPathResource res = new ClassPathResource("beans.xml"); XmlBeanFactory factory = new XmlBeanFactory(res); 或者: ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext( new String[] {"applicationContext.xml", "applicationContext-part2.xml"}); // of course, an ApplicationContext is just a BeanFactory BeanFactory factory = (BeanFactory) appContext;
1.2.1.1.通過實例工廠方法創建bean 與使用靜態工廠方法創建bean非常類似的是,使用一個實例工廠方法(非靜態的),通過調用一個已存在bean(這個bean應該是工廠類型)的工廠方法來創建新的bean。 要使用這種機制,class屬性必須保留為空的,而且factory-bean屬性必須指定一個包含工廠方法的bean的name(¥¥)。而工廠方法本身仍然要通過factory-method屬性設置。 下面是一個例子: <!-- The factory bean, which contains a method called createInstance -->