BeanFactory和ApplicationContext
Spring通过一个配置文件描述Bean和Bean之间的依赖关系,利用Java反射功能实例化Bean,并建立Bean之间的依赖关系。
Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、时间发布、资源装载等高级服务。
BeanFactory是Spring框架最核心的接口,它提供了高级IOC的配置机制。
ApplicationContext建立在BeanFactory的基础上,提供了更多面向应用的功能, 它提供了国际化支持和框架事件体系。
我们一般称BeanFactory为IoC容器,而称ApplicationContext为应用上下文,但有时候为了行文方便,我们也将ApplicationContext称为Spring容器。
对于BeanFactory 和 ApplicationContext的用途:
BeanFactory是Spring框架的基础设施,面向Spring本身
ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都可以直接使用Application而非底层的BeanFactory.
ApplicationContext
ApplicationContext概述
Application由BeanFactory派生而来,提供了更多面向实际的功能。
在BeanFactory中,很多功能都需要以编程的形式实现,但是在Application中则可以通过配置的方式实现。
ApplicationContext类体系结构
Application继承了HierachicalBeanFactory和ListableBeanFactory接口,在此基础上,还通过其他接口扩展了BeanFactory的功能。
这些接口如下:
ApplicationEventPublisher:让容器拥有发布应用上下文事件的功能,包括容器的启动事件、关闭事件等。
MessageSource:为应用提供i18N国际化消息访问的功能
ResourcePatternResolver:加载资源,可以通过带前缀的Ant风格的资源文件路径装载Spring的配置文件
LifeCycle:该接口提供start()和stop()方法,主要用于控制异步处理的过程,以达到管理和控制JMX、任务调度等目的
作者:感谢@小小工匠
来源:CSDN
原文:https://blog.csdn.net/yangshangwei/article/details/74937778
版权声明:本文为博主原创文章,转载请附上博文链接!