spring中ApplicationContext
Posted pclover11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring中ApplicationContext相关的知识,希望对你有一定的参考价值。
1 spring 容器应用上下文:ApplicationContext 主要的实现类是 ClassPathXmlApplicationContext 和 FileSystemXmlApplicationContext, 前者默认是从类路径加载配置文件,后者默认从文件系统中加载配置文件。
对于 ClassPathXmlApplicationContext 来说,“com.smart.beans.xml” 等同于 “classpath:com.smart.beans.xml”
ApplicationContext 在初始化应用上下文时就实例化所有单实例的 Bean,
2 WebApplicationContext 是专门为 WEB 应用准备的,它允许从web 应用的根目录的路径中加载配置文件完成初始化工作。
从 WebApplicationContext 可以获得 ServletContext 的引用,整个 WEB 应用上下文对象将作为属性放到 ServletContext 容器中,以便于web 应用环境可以访问 spring 应用上下文。
3 WebApplicationContext 初始化,它的初始化方式和 ApplicationContext 初始化方式不同,因为 WebApplicationContext 初始化需要 ServletContext 实例,也就是说必须在拥有 WEB 容器的前提下
才能完成初始化工作。通过 web.xml 文件配置自启动的 Servlet 或定义 web 容器监听器(ServletContextListener),配置任一即可完成启动 Spring web 应用上下文的工作。
spring 提供了 ContextLoaderServlet 和 ContextLoaderListener。二者内部都实现了启动 WebApplicationContext 实例的逻辑,配置二选一即可。
ContextLoaderListener 是通过web 容器上下文参数 ContextConfigLocation 获取 spring 配置文件位置。
如果是在不支持容器监听器的低版本 web 容器中,则可以采用 ContextLoaderServlet 完成相同工作。
4
以上是关于spring中ApplicationContext的主要内容,如果未能解决你的问题,请参考以下文章
Spring中ApplicationContext对事件的支持
06Spring源码-分析篇-ApplicationContext
Spring -- Spring相关API (ApplicationContext getBean)
Spring Framework中applicationContext.xml和spring-servlet.xml的区别
Spring Framework中applicationContext.xml和spring-servlet.xml的区别