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