`
xitongyunwei
  • 浏览: 961126 次
文章分类
社区版块
存档分类
最新评论

Spring contextConfigLocation

 
阅读更多

Spring contextConfigLocation

2012-04-02 01:20:56|分类:Spring|标签:spring工作积累|字号订阅

spring如何使用多个xml配置文件
1, 在web.xml中定义 contextConfigLocation参数.spring会使用这个参数加载.所有逗号分割的xml.如果没有这个参数,spring默认加载web-inf/applicationContext.xml文件.
例如:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:conf/spring/applicationContext_core*.xml,
classpath*:conf/spring/applicationContext_dict*.xml,
classpath*:conf/spring/applicationContext_hibernate.xml,
</param-value>
</context-param>
contextConfigLocation 参数定义了要装入的 Spring 配置文件。
原理:利用ServletContextListener 实现。
Spring 提供ServletContextListener 的一个实现类ContextLoaderListener ,该类可以作为listener 使用,它会在创建时自动查找WEB-INF/ 下的applicationContext.xrnl 文件。因此,如果只有一个配置文件,并且文件名为applicationContext.xml ,则只需在web.xml文件中增加如下代码即可:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


如果有多个配置文件需要载入,则考虑使用<context-para即元素来确定配置文件的文件名。由于ContextLoaderListener加载时,会查找名为contextConfigLocation的参数。因此,配置context-param时参数名字应该是contextConfigLocation。
带多个配置文件的web.xml 文件如下:
<1-- XML 文件的文件头二〉
<web-app>
<!一确定多个配置文件>
<context-param>
<1-- 参数名为contextConfigLocation…〉
<param-name>contextConfigLocation</param-name>
<!一多个配置文件之间以,隔开二〉
<param-value>/WEB-工NF/daoContext.xml./WEB-INF/application
Context.xml</param-value>
</context-param>
<!-- 采用listener创建ApplicationContext 实例-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>


如果没有contextConfigLocation 指定配置文件,则Spring 自动查找applicationContext.xml 配置文件。如果有contextConfigLocation,则利用该参数确定的配置文件。该参数指定的一个字符串,Spring 的ContextLoaderListener 负责将该字符串分解成多个配置文件,逗号","、空格" "及分号";"都可作为字符串的分割符。如果既没有applicationContext.xml 文件,也没有使用contextConfigLocation参数确定配置文件,或者contextConfigLocation确定的配置文件不存在。都将导致Spring 无法加载配置文件或无法正常创建ApplicationContext 实例

配置一个spring为加载而设置的servlet可以达到同样效果.
采用load-on-startup Servlet 实现。
Spring 提供了一个特殊的Servllet 类: ContextLoaderServlet。该Servlet 在启动时,会自动查找WEB-IN日下的applicationContext. xml 文件。当然,为了让ContextLoaderServlet 随应用启动而启动,应将此Servlet 配置成load-on-startup 的Servleto load-on-startup 的值小一点比较合适,因为要保证ApplicationContext 优先创建。如果只有一个配置文件,并且文件名为applicationContext. xml ,则在web.xml 文件中增加如下代码即可:
<servlet>
<servlet-name>context</servlet口-arne>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</
servlet-class>
<load-on-startup>l</load-o 口-startup>
</servlet>
带多个配置文件的web.xml 文件如下:
<web-app>
<'一确定多个配置文件一>
<context-param>
<!-- 参数名为contextConfigLocation-->
<param-name>contextConfigLocation</param-name>
<!-- 多个配置文件之间以,隔开一〉
<param-value>/WEB-工NF/daoContext.xml, !WEB-工NF/applicationContext.
xml</param-value>
</context-param>
<!一采用load-on-startup Servlet 创建Applicat工onContext 实例一〉
<servlet>
<servlet-narne>context</servlet-narne>
<servlet-class>org.springframework.web.context.ContextLoader
Servlet</servlet-class>
<!一下面值小一点比较合适,会优先加载一〉
<load-on-startup>l</load-on-startup>
</servlet>
</web-app>

2, 使用匹配符
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
比如说用到Hibernate,则把hibernate相关的配置放在applicationContext-hibernate.xml这一个文件,而一些全局相关的信息则放在applicationContext.xml,其他的配置类似.这样就可以加载了,不必写用空格或是逗号分开!

3, 如果使用struts加载多个spring配置文件.

下面这个配置的其实也是contextConfigLocation变量.struts-config.xml里面加这个
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,
/WEB-INF/action-servlet.xml,,,,,,,"/>

4,如果是非j2ee应用直接程序加载.
ApplicationContext act = new ClassPathXmlApplicationContext(new String[]{"bean1.xml","bean2.xml"});
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);
reader.loadBeanDefinitions(new ClassPathResource("bean1.xml"));
reader.loadBeanDefinitions(new ClassPathResource("bean2.xml"));
BeanFactory bf = (BeanFactory)reg;

分享到:
评论

相关推荐

    spring MVC配置详解

    在 web.xml 文件中配置 ContextLoaderListener 和 contextConfigLocation,以便加载 Spring 的配置文件。 ```xml &lt;!-- Spring 配置 --&gt; org.springframework.web.context.ContextLoaderListener ...

    Spring整合Struts

    ### Spring与Struts的整合:实现灵活的企业级应用开发 在企业级应用开发领域,Spring框架和Struts框架都是极具影响力的技术。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,提供了良好的环境管理和...

    spring5.0_mvc_maven项目_HelloWorld实例

    &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/WEB-INF/servlet-context.xml &lt;load-on-startup&gt;1 &lt;servlet-name&gt;dispatcher &lt;url-pattern&gt;/ ... ``` 7. **运行项目**:最后,将项目部署到...

    Spring4整合Jersey2.9

    &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/WEB-INF/applicationContext.xml &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ``` 4. **创建Jersey Application子类**...

    spring_MVC源码

    05. &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; 06. &lt;param-value&gt;classpath:applicationContext*.xml&lt;/param-value&gt; 07. &lt;/context-param&gt; 08. &lt;listener&gt; 09. &lt;listener-class&gt;org.springframework.web....

    Spring MVC框架实例

    &lt;property name="contextConfigLocation" value="/WEB-INF/servlet-context.xml"/&gt; &lt;!-- Controller配置 --&gt; &lt;!-- 这里可以配置属性、依赖等 --&gt; &lt;!-- HandlerMapping配置 --&gt; &lt;bean class="org.spring...

    spring 与 spring mvc 整合 配置讨论

    &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/WEB-INF/spring-mvc-config.xml &lt;load-on-startup&gt;1 ``` 3. **Spring MVC配置文件**:如`spring-mvc-config.xml`,配置视图解析器、拦截器、处理器映射器...

    spring 整合spring mvc

    &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/WEB-INF/spring/appServlet/servlet-context.xml &lt;load-on-startup&gt;1 &lt;servlet-name&gt;dispatcher &lt;url-pattern&gt;/ ``` 这里指定了Spring MVC的配置...

    Spring整合Servlet练习

    3. **创建Spring配置**:在指定的`contextConfigLocation`(例如`spring-servlet.xml`)中,定义Spring的bean,包括控制器、服务层、数据访问层等。 4. **编写Servlet Controller**:在Spring MVC中,Controller...

    Spring-5.1.5源码

    &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/WEB-INF/spring/appServlet/servlet-context.xml ``` 3. **监听器注册**:在web.xml中,我们需要将`ContextLoaderListener`注册为一个Servlet监听器,以便在...

    spring 所有功能详解

    ### Spring七大功能详解 #### 一、核心容器(Spring Core) **核心容器**提供了Spring框架的基础功能,通过Bean的方式组织和管理Java应用中的各种组件及其之间的关系。在Spring框架中,Bean Factory扮演着核心角色...

    Ext Direct Spring 参考手册

    ### Ext Direct Spring 参考手册知识点解析 #### 引言 《Ext Direct Spring 参考手册》是一份针对ExtDirectSpring框架使用的详细指南。该框架主要用于整合ExtJS前端框架与Spring后端服务,通过简化前后端通信的...

    spring3.0 mvc中文实例教程

    这里,`contextConfigLocation`参数指定了Spring MVC配置文件的位置,`url-pattern`定义了哪些URL会被DispatcherServlet处理。 【系列教程概览】 本系列教程包括多个部分,从基础到高级,涵盖了Spring 3.0 MVC的...

    spring与axis的整合

    这里需要注意的是,为了正确加载Spring配置文件,需要在`Web.xml`中指定`contextConfigLocation`参数。 #### 四、关键配置解析 - **Spring框架配置**:在`Web.xml`文件中,通过`ContextLoaderServlet`加载Spring的...

    Spring 和 struts 整合的三种方式

    在企业级Java应用程序开发中,Spring和Struts都是常见的框架,它们分别负责不同的职责:Spring作为全面的轻量级框架,提供依赖注入、事务管理、AOP等服务;而Struts则专注于MVC架构的实现,处理HTTP请求并驱动视图。...

    spring和hibernate整合

    &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/WEB-INF/spring/*.bean.xml org.springframework.web.context.ContextLoaderListener &lt;listener&gt; &lt;listener-class&gt;org.springframework....

    Spring 自启动项目demo

    &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/WEB-INF/spring/appServlet/servlet-context.xml &lt;load-on-startup&gt;1 &lt;servlet-name&gt;dispatcher &lt;url-pattern&gt;/ ``` 2. 创建`servlet-context.xml`...

    struts加载spring的方法

    4. **启动Web应用时加载Spring配置**:当Web应用启动时,`ContextLoaderListener`监听器会根据`contextConfigLocation`参数读取配置文件,并创建相应的ApplicationContext。 #### 二、Struts配置文件中的Spring集成...

    FreeMarker整合Spring_3

    ### FreeMarker与Spring 3整合知识点详解 #### 一、FreeMarker与Spring 3整合概述 **FreeMarker**是一款强大的模板引擎,它被广泛应用于Web应用中,用于生成动态页面内容。而**Spring框架**是Java领域中最受欢迎的...

Global site tag (gtag.js) - Google Analytics