spring的BeanFactory和ApplicationContext的区别

来源:互联网 发布:淘宝怎么买看片的账号 编辑:程序博客网 时间:2024/05/21 14:10

spring使用BeanFactory来实例化、配置和管理对象,但是它只是一个接口,里面有一个getBean()方法。我们一般都不直接用BeanFactory,而是用它的实现类ApplicationContext,这个类会自动解析我们配置的applicationContext.xml,然后根据我们配置的bean来new对象,将new好的对象放进一个Map中,键就是我们bean的id,值就是new的对象。

BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。
ApplicationContext接口,它由BeanFactory接口派生而来,因而提供BeanFactory所有的功能。

我们看下源码:

//ApplicationContext 继承了ListableBeanFactory接口public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,        MessageSource, ApplicationEventPublisher, ResourcePatternResolver {}//ListableBeanFactory接口又继承了BeanFactory 接口public interface ListableBeanFactory extends BeanFactory {}
原创粉丝点击