Spring的IoC容器就是一个实现了BeanFactory接口的可实例化类。事实上,Spring提供了两种不同的容器:一种是最基本的BeanFactory,另一种是扩展的ApplicationContext。

一、 BeanFactory
BeanFactory接口定义了Spring IoC容器的基本功能规范,是Spring IoC容器所应遵守的最底层和最基本的编程规范
源码解析
|
|
二、 XmlBeanFactory
1、XmlBeanFactory只提供最基本的IoC容器功能,它主要读取以XML形式定义的BeanDefinition。
2、XmlBeanFactory在DefaultListableBeanFactory的基础上扩展了xml读取的功能。
源码
|
|
使用
|
|
小结
使用IoC容器的步骤:
1、创建IoC配置文件抽象资源
2、创建一个BeanFactory
3、创建一个载入BeanDefinition的读取器
4、从定义好的资源未知读入配置信息
三、ApplicationContext
ApplicationContext是一个高级形态的IoC的容器,在BeanFactory的基础上进行了功能扩展。
源码
|
|
扩展的特性
支持不同的信息源。ApplicationContext 扩展了MessageSource接口,可以支持国际化配置。
访问资源。AbstractApplicationContext是DefaultResourceLoader的子类。
支持应用事件。pplicationContext继承了ApplicationEventPublisher接口,在程序上下文中引入了事件机制,这些事件和Bean生命周期的结合为Bean的过来提供了便利。