Spring应用上下文:ApplicationContext除了IoC容器角色,还提供哪些特性?

通过上一篇BeanFactory和ApplicationContext比较发现,BeanFactory提供了配置框架和基本功能,ApplicationContext在BeanFactory基础上增加了更多针对企业的功能。ApplicationContext是对一个完整的超集BeanFactory


简而言之,BeanFactory 是 Bean容器,它不提供企业特性,比如AOP、事务以及事件等,这些都被ApplicationContext支持

Spring应用上下文:ApplicationContext除了IoC容器角色,还提供哪些特性?

ApplicationContext接口是BeanFactory的字接口,代表一个应用上下文环境

ApplicationContext拓展了很多使用的功能

  • Bean 的生命周期管理

  • 框架事件体系

  • 国际化支持等

同时,ApplicationContext接口还通过继承其它接口拓展BeanFactory的功能

  • MessageSource 

    为应用提供国际化访问功能

  • ResourceLoad

    提供资源(如URL和文件系统)的访问支持

  • ApplicationEventPublisher

    引入事件机制,包含启动事件、关闭事件等,让容器在上下文中提供对事件的支持

补充说明

BeanFactory在初始化容器时,并未实例化Bean,直到第一次访问某个Bean时候才实例化目标Bean

ApplicationContext 在初始化上下文时就实例化所有单实例的Bean


上一篇:使用Spring IoC容器:选BeanFactory还是ApplicationContext?


下一篇:4.Spring的数据库开发