什么是Spring框架中的Application上下文和bean工厂

时间:2012-03-05 14:10:53

标签: java spring

  

可能重复:
  BeanFactory vs ApplicationContext

Spring框架中应用程序上下文和bean工厂的简单含义。

1 个答案:

答案 0 :(得分:34)

BeanFactory

BeanFactory是实例化,配置和管理多个bean的实际容器。这些bean通常彼此协作,因此它们之间具有依赖关系。这些依赖关系反映在BeanFactory使用的配置数据中(尽管某些依赖关系可能不会作为配置数据显示,而是在运行时bean之间的程序交互功能)。

<强>的ApplicationContext

虽然beans包提供了管理和操作bean的基本功能,通常是以编程方式,但是上下文包添加了ApplicationContext,它以更加面向框架的方式增强了BeanFactory功能。许多用户将以完全声明的方式使用ApplicationContext,甚至不必手动创建它,而是依赖于ContextLoader等支持类来自动启动ApplicationContext,作为正常启动过程的一部分。 Java EE Web应用程序。当然,仍然可以以编程方式创建ApplicationContext。

上下文包的基础是ApplicationContext接口,位于org.springframework.context包中。从BeanFactory接口派生,它提供BeanFactory的所有功能。为了允许以面向框架的方式工作,使用分层和分层上下文,上下文包还提供以下内容:

  • MessageSource,提供对i18n-style

  • 中的消息的访问
  • 访问资源,例如网址和文件

  • 事件传播到实现ApplicationListener接口的bean

  • 加载多个(分层)上下文,允许每个上下文集中在一个特定图层上,例如应用程序的Web图层

由于ApplicationContext包含BeanFactory的所有功能,因此通常建议在BeanFactory上使用它,除了一些有限的情况,例如可能在applet中,内存消耗可能很关键,而一些额外的千字节可能会有所不同。以下部分介绍了ApplicationContext添加到基本BeanFactory功能的功能。

http://static.springsource.org/spring/docs/1.2.x/reference/beans.html