spring 的工厂类

2019-06-13 16:03:12 浏览数 (1)

spring 的工厂类

1. 工厂类 BeanFactory 和 ApplicationContext 的区别。
  1. ApplicationContext 是 BeanFactory 的子接口,提供了比父接口更多的功能。
  2. 在生成 bean 实例的时候,生成的时机是不一样的。 BeanFactory 在工厂实例化后,在调用 getBean 时创建实例。 ApplicationContext 在一加载配置文件的时候,将配置文件中所有单例模式生成的类全部实例化。

现在一般使用 ApplicationContext,不建议使用 BeanFactory。

2. 加载配置文件的两种方式:
  • 工作目录下加载:ClassPathXmlApplicationContext
  • 某个目录下加载:FileSystemXmlApplicationContext
3. 演示

这里以使用 BeanFactory 工厂类,和使用 FileSystemXmlApplicationContext 方法为例:

代码语言:javascript复制
@Test
/**
 * 传统方式的工厂类:BeanFactory
 */
public void demo5() {
    //创建工厂类
    BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("e:\applicationContext.xml"));
    //通过工厂获得类
    UserService userService = (UserService) beanFactory.getBean("userService");

    userService.sayHello();
}

0 人点赞