BeanFactory 和 ApplicationContext 的区别

打印 上一主题 下一主题

主题 847|帖子 847|积分 2541

这是 Spring Framework 对 ApplicationContext 的解释:
  1. The org.springframework.context.ApplicationContext interface represents the Spring IoC container and is responsible for instantiating, configuring, and assembling the beans.
复制代码
ApplicationContext 代表 Spring 的 IOC  容器,负责实例化、配置和组装 bean。

Spring Framework 把 ApplicationContext 称为容器,其实不是太精确,真正的容器应该是  org.springframework.beans.factory.BeanFactory,不过 ApplicationContext 是 BeanFactory 的子接口,并提供 AutowireCapableBeanFactory 的引用,如许 ApplicationContext 就拥有了 Bean 读取和装载的本领,因此,一般也笼统的称 ApplicationContext 为容器。
再回到区别上来,这是 Spring Framework 的描述:
  1. In short, the BeanFactory provides the configuration framework and basic functionality, and the ApplicationContext adds more enterprise-specific functionality.
复制代码
  1. public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,
  2.                 MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
  3. }
复制代码
可以看到 ApplicationContext 还扩展了其它接口,提供了其它功能:

  • 通过 MessageSource 提供 i18n 国际化支持;
  • 通过 ResourceLoader 提供资源的加载,比如 class path 或体系资源;
  • 通过 ApplicationEventPublisher 对实现了 ApplicationListener 的 bean 进行事件通知;
  • 通过 HierarchicalBeanFactory 加载多个上下文;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表