Spring中ApplicationContext加载机制
Spring中ApplicationContext加载机制 ApplicationContext 是 Spring 框架中的核心组件之一,负责加载和管理应用程序中的 Bean 对象。在 Web 应用程序中,ApplicationContext 的加载机制是非常重要的, Spring 提供了多种方式来加载 ApplicationContext。 Spring 提供了两种选择来加载 ApplicationContext:ContextLoaderListener 和 ContextLoaderServlet。这两者在功能上完全等同,只是一个是基于 Servlet2.3 版本中新引入的 Listener 接口实现,而另一个基于 Servlet 接口实现。开发中可根据目标 Web 容器的实际情况进行选择。 配置非常简单,在 web.xml 中增加相应的配置信息。例如,使用 ContextLoaderListener 可以增加以下配置信息: ```xml <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> ``` 或者,使用 ContextLoaderServlet 可以增加以下配置信息: ```xml <servlet> <servlet-name>context</servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> ``` 通过以上配置,Web 容器会自动加载 /WEB-INF/applicationContext.xml 初始化 ApplicationContext 实例,如果需要指定配置文件位置,可通过 context-param 加以指定: ```xml <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-bean.xml,classpath:spring-jamon.xml</param-value> </context-param> ``` 配置完成之后,即可通过 WebApplicationContextUtils.getWebApplicationContext 方法在 Web 应用中获取 ApplicationContext 引用。例如: ```java ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(); LoginAction action = (LoginAction) ctx.getBean("action"); ``` Spring 为 ApplicationContext 提供了多种实现,分别是: 1. ClassPathXmlApplicationContext:从类路径下加载配置文件,例如: ```java ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); ``` 2. FileSystemXmlApplicationContext:从文件系统中加载配置文件,例如: ```java ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); ``` XmlWebApplicationContext:专为 Web 工程定制的,例如: ```java ApplicationContext ctx = new XmlWebApplicationContext("WEB-INF/applicationContext.xml"); ``` 这些实现都可以根据实际情况进行选择,并且可以根据需要加载单个或多个配置文件。使用这些实现可以轻松地加载和管理应用程序中的 Bean 对象。 Spring 中的 ApplicationContext 加载机制提供了多种选择和灵活的配置方式,方便了开发者快速构建和管理应用程序。
- cen5144200322013-03-25写得不是很详细
- 粉丝: 6
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助