Spring学习笔记之ApplicationContext_第1张图片


Spring学习笔记之ApplicationContext_第2张图片

Spring学习笔记之ApplicationContext_第3张图片

对于一个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,下面分别看一下

Spring学习笔记之ApplicationContext_第4张图片

Spring学习笔记之ApplicationContext_第5张图片