Spring工厂类结构

Spring工厂类结构

image

有两个工厂接口
  1. BeanFactory
  2. AcctionContext

ApplicationContext接口:

  • 每次容器启动时就会创建容器中配置的所有对象.并提供更多功能

    1. 它就相当于一个大工厂,提供了根据配置文件中的id属性值,获取对象
    2. 两个实现类:

      • ClassPathXmlApplication类,从类的根路径下加载配置文件(企业项目开发中,使用较多)

      • FileSystemXmlApplication类,从文件系统(磁盘)上加载配置文件

从工厂中获取对象

  • applicationContext.xml配置文件
<bean id="customerDaoImpl" class="com.dao.impl.CustomerDaoImpl"></bean>
  • 获取对象
@Test
public void save(){
    //创建ApplicationContext的实现类
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

    //获取对象
    CustomerDaoImpl customerDaoImpl = (CustomerDaoImpl) context.getBean("customerDaoImpl");

    //调用方法
    customerDaoImpl.saveCustomer();
}

BeanFactory(过时)

采用延迟创建的思想

因为是之前硬件还没发达, 资源匮乏, 才需要延迟创建
- spring原始接口.针对原始接口的实现类功能较为单一

  • BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象

BeanFactory和ApplicationContext区别

  1. BeanFactory是工厂顶层接口
  2. ApplicationContext是BeanFactory子接口
  3. 创建对象时间点不一样:

    • BeanFactory创建对象:什么时候使用,什么时候创建。采用延迟创建的思想

    • ApplicationContext创建对象:加载配置文件,立即创建。采用立即创建的思想

猜你喜欢

转载自blog.csdn.net/Kato_op/article/details/80220727