<a href="https://s1.51cto.com/wyfs02/M01/A6/AE/wKioL1nYho6QUkG4AACCfECODXY726.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M00/A6/AE/wKioL1nYh6uDxqxkAAAlysy5K_M191.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/07/FD/wKiom1nYh_mjEQOAAAD8t-ei_Qs835.png" target="_blank"></a>
对于一个Application提供配置的核心接口,在应用运行的时候它是只读的。
一个ApplicationContext提供以下能力:
1、可以通过BeanFactory中的方法访问应用组件
2、可以加载文件资源
3、可以给已经注册的监听器发送事件
4、可以解析消息,支持国际化
5、可以从父级Context中继承,当然定义在子Context(或者叫后台Context)中的总是具有优先权。这意味着,比如说,一个单个的父级别的Context可以在整个Web Application中使用,每一个Servlet有自己的子上下文,而且是独立的,跟其它的Servlet没有关系。
(
这句话什么意思呢,我的理解是:
1、上下文是可以继承的,这样就是说,在子级别的上下文中可以使用父级别的上下文中所定义的Bean,当然前提是这两个上下文是父子关系。
2、在一个Web上下文中可以访问其继承的父上下文
3、每个Servlet可以有自己的上下文,而且Servlet彼此独立
4、子上下文总是具有优先权,意味着,如果有子上下文中有一个和父上下文中相同的Bean,那么将优先访问子上下文中的这个Bean。
)
我们最初见到的是AnnotationConfigApplicationContext和ClassPathXmlApplicationContext,它们分别代表基于注解的ApplicationContext和基于Xml的ApplicationContext,下面分别看一下
<a href="https://s2.51cto.com/wyfs02/M00/07/FD/wKiom1nYjWvTWXcRAABUHWrNLiw607.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/A6/AF/wKioL1nYjR3j9sXwAAAt6B-fMek730.png" target="_blank"></a>
本文转自 手不要乱摸 51CTO博客,原文链接:http://blog.51cto.com/5880861/1970623