spring 的工廠類
1. 工廠類 BeanFactory 和 ApplicationContext 的區別。
-
ApplicationContext 是 BeanFactory 的子接口,提供了比父接口更多的功能。
-
在生成 bean 實例的時候,生成的時機是不一樣的。
BeanFactory 在工廠實例化后,在調用 getBean 時創建實例。
ApplicationContext 在一加載配置文件的時候,將配置文件中所有單例模式生成的類全部實例化。
現在一般使用 ApplicationContext,不建議使用 BeanFactory。
2. 加載配置文件的兩種方式:
- 工作目錄下加載:ClassPathXmlApplicationContext
- 某個目錄下加載:FileSystemXmlApplicationContext
3. 演示
這里以使用 BeanFactory
工廠類,和使用 FileSystemXmlApplicationContext
方法為例:
@Test
/**
* 傳統方式的工廠類:BeanFactory
*/
public void demo5() {
//創建工廠類
BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("e:\\applicationContext.xml"));
//通過工廠獲得類
UserService userService = (UserService) beanFactory.getBean("userService");
userService.sayHello();
}