概述
BeanFactory:bean工厂,是IOC容器对象的最高的父接口,面向的是Spring框架本身,所以在开发中,几乎不会使用BeanFactory作为IOC容器对象,但是BeanFactory提供的getBean方法我们一直在用,只不过是通过子接口使用。
ApplicationContext:是BeanFactory的子接口,面向的是Spring的开发者,所以在开发中,我们几乎都使用ApplicationContext作为IOC容器对象。
ApplicationContext接口的实现类:
- ClassPathXmlApplicationContext:从类的根路径下加载配置文件。
- FileSystemXmlApplicationContext:从磁盘路径上加载配置文件,配置文件可以字磁盘的任意位置。
- AnnotationConfigApplicationContext: 当我们使用注解配置容器对象时,需要使用此类来创建 spring 容器。它用来读取注解。
ApplicationContext还有稍微常用一点的子接口
- ConfigurableApplicationContxt:继承了ApplicationContext接口的所有的方法,并且新增了两个方法。
①:refresh() :刷新IOC容器
②:close() :关闭IOC容器
两者的区别
- BeanFactory 是 Spring 容器中的顶层接口,ApplicationContext 是它的子接口。
- 创建对象的时间点不一样。
ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。
BeanFactory:什么使用什么时候创建对象。