最佳答案
BeanFactory
BeanFactory
是实例化、配置和管理大量 bean 的实际容器。这些 bean 通常相互协作,因此它们之间存在依赖关系。这些依赖关系反射(reflect)在 BeanFactory
使用的配置数据中(尽管一些依赖关系可能不作为配置数据可见,而是运行时 bean 之间的编程交互的函数)。
ApplicationContext
虽然 beans 包提供了管理和操作 bean 的基本功能,通常以编程方式,但 context 包添加了 ApplicationContext
,它在更多框架中增强了 BeanFactory
功能导向风格。许多用户会以完全声明的方式使用 ApplicationContext
,甚至不必手动创建它,而是依靠诸如 ContextLoader
之类的支持类来自动启动 ApplicationContext 作为Java EE Web 应用程序的正常启动过程。当然,仍然可以通过编程方式创建 ApplicationContext。
上下文包的基础是ApplicationContext
接口(interface),位于org.springframework.context
包中。派生自 BeanFactory
接口(interface),它提供了 BeanFactory
的所有功能。为了允许以更加面向框架的方式工作,使用分层和分层上下文,上下文包还提供以下内容:
MessageSource,提供对 i18n 风格的消息的访问
访问资源,例如 URL 和文件
事件传播到实现 ApplicationListener 接口(interface)的 bean
加载多个(分层)上下文,允许每个上下文专注于一个特定层,例如应用程序的 Web 层
由于ApplicationContext
包含了BeanFactory
的所有功能,一般建议在BeanFactory
之上使用,除了少数在有限的情况下,例如在小程序中,内存消耗可能很关键,额外的几千字节可能会有所作为。以下部分描述了 ApplicationContext
添加到基本 BeanFactory
功能的功能。
http://static.springsource.org/spring/docs/1.2.x/reference/beans.html
关于java - Spring框架中的应用程序上下文和bean工厂是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9568042/