通过上一篇BeanFactory和ApplicationContext比较发现,BeanFactory提供了配置框架和基本功能,ApplicationContext在BeanFactory基础上增加了更多针对企业的功能。ApplicationContext是对一个完整的超集BeanFactory
简而言之,BeanFactory 是 Bean容器,它不提供企业特性,比如AOP、事务以及事件等,这些都被ApplicationContext支持
ApplicationContext接口是BeanFactory的字接口,代表一个应用上下文环境
ApplicationContext拓展了很多使用的功能
Bean 的生命周期管理
框架事件体系
国际化支持等
同时,ApplicationContext接口还通过继承其它接口拓展BeanFactory的功能
-
MessageSource
为应用提供国际化访问功能
-
ResourceLoad
提供资源(如URL和文件系统)的访问支持
-
ApplicationEventPublisher
引入事件机制,包含启动事件、关闭事件等,让容器在上下文中提供对事件的支持
补充说明
BeanFactory在初始化容器时,并未实例化Bean,直到第一次访问某个Bean时候才实例化目标Bean
ApplicationContext 在初始化上下文时就实例化所有单实例的Bean