Spring框架中Application context和BeanFactory的区别


Spring框架提供两个IOC容器来管理、配置和操作bean。一个是BeanFactory,另一个是Application Context。

Application context接口扩展了BeanFactory,以增强BeanFactory的功能。

在新的Spring版本中,BeanFactory被ApplicationContext取代。但是,BeanFactory仍然存在,用于向后兼容。

Spring 2.0及以上版本使用BeanPostProcessor扩展点(一个接口,提供一些回调方法,我们可以实现这些方法来定制实例化逻辑、依赖解析逻辑等)。因此,如果您使用的是BeanFactory,则某些功能(例如AOP和事务)在不进行额外配置的情况下将无法工作。

序号关键点BeanFactoryApplication Context
1
实现
XMLBeanFactory实现了BeanFactory
FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和AnnotationConfigWebApplicationContext实现了ApplicationContext。

此外,ApplicationContext扩展了BeanFactory
2
注解


3
实例化
当调用getBean()方法时,BeanFactory实例化bean。
Application Context在容器启动时实例化bean。
4
事件发布
BeanFactory没有向bean推送事件的能力
Application Context能够向bean推送事件。
5
加载机制
延迟加载
积极加载

更新于:2019年11月18日

4K+浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告