ApplicationContext与BeanFactory区别:

BeanFactory提供的最基本的Ioc容器的功能,关于这些功能定义,我们可以在接口BeanFactory中看到。BeanFactory接口定义了Ioc容器最基本的形式,并且提供了Ioc容器所应该遵守的最基本的服务契约,同时,这也是我们使用Ioc容器所应遵守的最底层和最基本的编程规范,这些接口定义勾画了Ioc的基本轮廓。BeanFactory只是一个接口类,并没有给出容器的具体实现,比如DefaultListableBeanFactory、xmlBeanFactory、ApplicationContext等都可以看成是容器附加了某些功能的具体实现,也就是容器体系中的具体容器产品。 ApplicationContext在Spring中,系统已经为用户提供了许多已经定义好的容器实现,而不需要开发人员事必躬亲.ApplicationContext是一个高级形态意义的Ioc容器,相比那些简单拓展BeanFactory的基本Ioc容器,开发人员常用的.

ApplicationContext除了能够提供前面介绍的容器基本功能,还为用户提供了很多附加服务:

1.支持不同的资源。ApplicationContext扩展了MessageSource接口,可以支持国际化的实现,为开发多语言版本的应用提供服务.

2.访问资源。这一特性体现在ResourceLoader和Resource的支持上,这样我们可以从不同地方得到Bean定义资源。

3.支持应用事件。继承了接口ApplicationEventPublisher,从而在上下文引入了事件机制,这些事件和Beand的生命周期的结合为Bean的管理提供了便利。

4.在ApplicationContext中提供的附加服务。这些服务使得基本Ioc容器的功能更丰富。使得ApplicationContext与BeanFactory相比,对它的使用是一种面向框架的使用风格,

所以建议在开发应用时使用ApplicationContext作为Ioc容器的基本形式。

相关推荐