Spring-framework 官方文档
简单翻译
在org.springframework.beans和org.springframework.context包是Spring框架的IoC容器的基础。该 BeanFactory 界面提供了一种高级配置机制,能够管理任何类型的对象「这里提到的是管理对象,不是管理Bean」。ApplicationContext 是的子接口BeanFactory。它增加了:
- 与Spring的AOP功能轻松集成
- 消息资源处理(用于国际化)
- 事件发布应用层特定的上下文,例如WebApplicationContext 用于Web应用程序中的。
简而言之,BeanFactory提供了配置框架和基本功能,并ApplicationContext增加了更多针对企业的功能。该ApplicationContext是对一个完整的超集BeanFactory,并在Spring的IoC容器的描述本章独占使用。有关使用的详细信息BeanFactory,而不是ApplicationContext,看到 的BeanFactory。在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。Bean是由Spring IoC容器实例化,组装和以其他方式管理的对象。否则,bean仅仅是应用程序中许多对象之一。Bean及其之间的依赖关系反映在容器使用的配置元数据中
总结
官方文档以及结合源码简要分析难发现 BeanFactory和ApplicationContext其实是统一类事物,只不过在底层实现的时候ApplicationContext组合了一个 BeanFactory实现,所以我们要区分出来这两者管理,如果应用中我们得到ApplicationContext 记得调用getBeanFactory 方法获取真正底层实现而非而非直接进行替换