一、ApplicationContext:是spring继BeanFactory之外的另一个核心接口或容器,允许容器通过应用程序上下文环境创建、获取、管理bean。为应用程序提供配置的中央接口。在应用程序运行时这是只读的,但如果实现支持这一点,则可以重新加载。
一个ApplicationContext提供:
•访问应用程序组件的Bean工厂方法。从org.springframework.beans.factory.ListableBeanFactory继承。
•以通用方式加载文件资源的能力。继承自org.springframe .core.io。ResourceLoader接口。---beanXML
•向注册侦听器发布事件的能力。继承自ApplicationEventPublisher接口。
•解析消息的能力,支持国际化。继承自MessageSource接口。
•从父上下文继承。后代上下文中的定义总是优先级。例如,这意味着单个父上下文可以被整个web应用程序使用,而每个servlet都有自己独立于任何其他servlet的子上下文。
其接口主要子类(接口)包括:ConfigurableApplicationContext、WebApplicationContext
ConfigurableApplicationContext:该接口提供了根据配置创建、获取bean的一些方法,其中主要常用的实现包括:ClassPathXmlApplicationContext、FileSystemXmlApplicationContext等。提供了通过各种途径去加载实例化bean的手段。
AnnotationConfigWebApplicationContext:WebApplicationContext实现,它接受带注释的类作为输入—特别是@Configuration-annotated类,但也接受普通的@Component类和使用javax兼容JSR-330的类。注入注解。允许逐个注册类(指定类名作为配置位置)以及类路径扫描(指定基本包作为配置位置)。对于多个@Configuration类,后面的@Bean定义将覆盖前面加载的文件中定义的类。可以利用这一点,通过额外的配置类故意覆盖某些bean定义。提供了注册注解类和扫描注解类等操作:
核心方法:loadBeanDefinitions
XmlWebApplicationContext:WebApplicationContext实现,它从XML文档获取配置,默认情况下,配置将取自“/WEB-INF/applicationContext”。xml" for the root context, and "/WEB-INF/test-servlet。对于具有名称空间“test-servlet”的上下文(类似于对于具有servlet-name“test”的DispatcherServlet实例)。
ClassPathXmlApplicationContext:独立的XML应用程序上下文,从类路径中获取上下文定义文件,将普通路径解释为包含包路径的类路径资源名(例如,“mypackage / myresource.txt”)。适用于测试工具以及嵌入在jar中的应用程序上下文。配置位置的默认值可以通过getConfigLocations重写,配置位置可以表示具体的文件,比如“/myfiles/context”。xml“或ant样式的模式,比如”/myfiles/*-context。参见org.springframework.util。模式细节的AntPathMatcher javadoc)。注意:对于多个配置位置,后面的bean定义将覆盖前面加载的文件中定义的配置位置。可以利用这一点,通过额外的XML文件故意覆盖某些bean定义。提供了诸多加载xml的操作:
FileSystemXmlApplicationContext:
独立的XML应用程序上下文,从文件系统或url获取上下文定义文件,将普通路径解释为相对的文件系统位置(例如,“mydir / myfile.txt”)。适用于测试线束以及独立环境。注意:普通路径总是被解释为相对于当前VM工作目录,即使它们以斜杠开头。(这与Servlet容器中的语义一致。)使用显式的“file:”前缀强制执行绝对文件路径。配置位置的默认值可以通过getConfigLocations重写,配置位置可以表示具体的文件,比如“/myfiles/context”。xml“或ant样式的模式,比如”/myfiles/*-context。参见org.springframework.util。模式细节的AntPathMatcher javadoc)。注意:对于多个配置位置,后面的bean定义将覆盖前面加载的文件中定义的配置位置。可以利用这一点,通过额外的XML文件故意覆盖某些bean定义。这是一个简单的一站式应用程序上下文。考虑将GenericApplicationContext类与org.springframework.bean .factory.xml结合使用。用于更灵活的上下文
ClassPathXmlApplicationContext FileSystemXmlApplicationContext :一个是从类路径获取配置文件并进一步实例化bean,一个是从文件系统或url加载文件并进一步实例化bean。
ApplicationContext提供:
•访问应用程序组件的Bean工厂方法。从org.springframework.beans.factory.ListableBeanFactory继承。
•以通用方式加载文件资源的能力。继承自org.springframe .core.io。ResourceLoader接口。
•向注册侦听器发布事件的能力。继承自ApplicationEventPublisher接口。
•解析消息的能力,支持国际化。继承自MessageSource接口。
•从父上下文继承。后代上下文中的定义总是优先级。例如,这意味着单个父上下文可以被整个web应
作者:你的雷哥
本文版权归作者所有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。