spring架构中的工厂设计模式 spring 工厂类_配置文件

spring 的工厂类

1. 工厂类 BeanFactory 和 ApplicationContext 的区别。
  1. ApplicationContext 是 BeanFactory 的子接口,提供了比父接口更多的功能。
  2. 在生成 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();
}