BeanFactory 是顶级接口
ApplicationContext 继承或实现于BeanFactory , 都具有生产Bean的能力,但BeanFactory不具备包扫描的能力
ApplicationContext 具有更多的功能,事件发布等,服务非常好
BeanFactory 就是一个无情的生产机器,没有其他服务,只能通过下面的方式去注册Bean定义,生产Bean
1 | DefaultListableBeanFactory defaultListableBeanFactory = new DefaultListableBeanFactory(); |
这也是为什么说,BeanFactory 是getBean的时候才创建,而ApplicationContext是在容器启动的时候就已经创建好了Singletonl的Bean
下面的表格是一个不错的总结:
Feature | BeanFactory |
ApplicationContext |
---|---|---|
Bean Bean实例化/装配 | Yes | Yes |
集成的生命周期管理 | No | Yes |
自动注册 BeanPostProcessor |
No | Yes |
自动注册 BeanFactoryPostProcessor |
No | Yes |
便利的 MessageSource 访问 (国际化) |
No | Yes |
内置ApplicationEvent 发布机制 |
No | Yes |
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章