`

spring加载多个xml配置文件

阅读更多

1、首先从我自己用过的方法开始,非j2ee应用直接程序加载。很简单,如下所示。

//多配置文件加载的代码
String[] configLocations = {"service-context.xml" , "datasource-context.xml"};
ApplicationContext act = new ClassPathXmlApplicationContext(configLocations);

 2、在web.xml中定义 contextConfigLocation参数.spring会使用这个参数加载.所有”逗号”分割的xml。

  	<!-- 添加多配置文件 -->  
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>
  	     classpath:datasource-context.xml
  	     classpath:model-context.xml
  	     classpath:service-context.xml
  	</param-value>

  </context-param>

 

详细说明如下:利用ServletContextListener 实现。

 

Spring 提供javax.servlet.ServletContextListener 的一个实现类org.springframeword.web.context.ContextLoaderListener ,该类可以作为listener 使用,它会在创建时自动查找WEB-INF/ 下的applicationContext.xrnl 文件。

 

因此,如果只有一个配置文件,并且文件名为applicationContext.xml ,则只需在web.xml文件中增加如下代码即可:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如果有多个配置文件需要载入,则考虑使用<context-param>即元素来确定配置文件的文件名。由于ContextLoaderListener加载时,会查找名为contextConfigLocation的参数。
因此,配置context-param时参数名字应该是contextConfigLocation。
带多个配置文件的web.xml 文件如下:

<1-- XML 文件的文件头二〉
<?xml version="1.0 " encoding="Iso8859-1"?>
< 1-- web.xm1 文件的DTD 等信息一〉
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems. 工口c.//DTD Web Application 2.3//EN" ''http://java.sun.com/dtd/web-app_2_3.dtd''>
<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. xrnl 配置文件。如果有contextConfigLocation,则利用该参数确定的配置文件。该参数指定的一个字符串, Spring 的ContextLoaderListener 负责将该字符串分解成多个配置文件,逗号","、空格" "及分号";"都可作为字符串的分割符。如果既没有applicationContext. xrnl 文件,也没有使用contextConfigLocation参数确定配置文件,或者contextConfigLocation确定的配置文件不存在。都将导致Spring 无法加载配置文件或无法正常创建ApplicationContext 实例。

 

使用通配符加载多个xml。

<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,,,,,,,"/>

 

 

分享到:
评论

相关推荐

    Spring 加载多个配置文件

    ### Spring 加载多个配置文件详解 #### 一、引言 在现代软件开发中,Spring 框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐。尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统...

    spring加载多个配置文件

    在Spring框架中,加载多个配置文件是常见的需求,特别是在大型项目中,为了保持代码的整洁和模块化,通常会将不同的配置分散到多个文件中。本文将深入探讨如何在Spring中实现这一功能。 首先,Spring提供了多种方式...

    Spring中如何加载多个配置文件.pdf

    需要注意的是,使用通配符的方式仅能匹配位于文件系统中的XML配置文件,对于打包在JAR包内的配置文件则不起作用。这是因为`ClassPathXmlApplicationContext`默认从classpath中查找配置文件,而这里的“文件系统”指...

    spring如何加载配置多个配置文件

    Spring 框架中的配置文件加载是非常重要的,特别是在大型项目中,需要加载多个配置文件以实现模块化和灵活性。那么,Spring 是如何加载配置多个配置文件的呢?下面我们将通过实例代码详细介绍 Spring 如何加载配置多...

    如何加载jar包中的spring配置文件

    在大型项目中,可能存在多个相同名称的配置文件,Spring会按照类路径的顺序加载。确保配置文件的加载顺序符合项目需求,避免覆盖或遗漏。 **步骤5:使用Spring Boot的自动配置** 如果项目使用了Spring Boot,可以...

    加载jar包中的spring配置文件

    当我们构建一个基于Spring的应用时,经常需要从jar包中加载配置文件,以便管理依赖注入和其它服务。在Spring中,我们通常使用`classpath:`或`classpath*:`前缀来指定资源的位置。这两个前缀在处理多个类路径位置时有...

    在Spring Boot中加载XML配置的完整步骤

    为了使Spring Boot应用能够加载并使用这个XML配置,我们需要创建一个配置类`WebMvcConfig`,并使用`@ImportResource`注解来导入`bean.xml`。 ```java package org.taoguoguo; import org.springframework.context....

    加载spring 文件,在web.xml中的配置

    除了默认的`/WEB-INF/applicationContext.xml`,你还可以通过`contextConfigLocation`指定多个配置文件,用逗号分隔它们,例如`&lt;param-value&gt;classpath:app-config.xml,classpath:db-config.xml&lt;/param-value&gt;`,这...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件1

    当存在多个XML配置文件或Java配置时,需要注意bean的加载顺序和覆盖规则。Spring Boot会按照它们被加载的顺序处理bean定义,后加载的配置可能会覆盖之前加载的相同bean定义。 6. **Spring Boot AutoConfigure**: ...

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的...总的来说,Spring动态加载配置文件涉及到IoC容器、属性源、配置加载策略和刷新机制等多个方面。理解和掌握这些知识点,可以帮助我们构建更加灵活和适应性强的应用。

    Spring Boot多模块配置文件读取

    当项目变得复杂,包含多个模块时,这种单一配置文件的方式可能会导致混乱。因此,我们需要为每个模块创建独立的配置文件,以便更好地组织和管理。 1. **创建模块化的配置文件** - 每个模块都应该有自己的`src/main...

    Spring XML配置的12个技巧

    7. 使用 profiles:Spring支持基于不同环境(如开发、测试、生产)的配置profile,这样可以在不同的环境中使用不同的配置,而无需合并多个XML配置文件。 8. 使用`&lt;import&gt;`引入其他配置:当配置文件变得庞大时,...

    spring读取配置文件

    这两个类都是Spring用于创建应用上下文的实现,主要用来加载XML配置文件并初始化Spring容器。 1. `ClassPathXmlApplicationContext`:此上下文主要用于加载类路径(classpath)下的XML配置文件。这意味着配置文件应...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件5

    在Spring Boot应用中,我们通常使用YAML或properties文件来管理配置,但有时也需要与传统的XML配置文件集成,特别是当有遗留系统或者需要利用特定XML配置功能时。本篇文章将深入探讨如何在Spring Boot中读取不同路径...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件4

    如果XML配置文件位于`src/main/resources/META-INF/spring.factories`文件中,Spring Boot会自动加载它们。创建一个名为`org.springframework.boot.autoconfigure.EnableAutoConfiguration`的键,并将你的XML配置...

    详解Spring mvc的web.xml配置说明

    `context-param`用于指定Spring上下文配置文件的位置,通常是一个或多个路径,用逗号分隔,如`classpath*:spring/spring-config.xml`。`ContextLoaderListener`监听器会在Web应用启动时读取这些配置文件,创建Spring...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件6

    1. **使用`@ImportResource`注解**:在Spring Boot的主配置类(通常标注了`@SpringBootApplication`)上添加`@ImportResource`注解,指定XML配置文件的路径。例如: ```java @SpringBootApplication @...

    详解spring applicationContext.xml 配置文件

    在Spring框架中,`applicationContext.xml`是核心的配置文件,它定义了应用上下文,即Spring容器,用来管理所有bean的创建、初始化、依赖注入以及生命周期。这个文件使用XML语法,遵循特定的命名空间和schema,以...

    spring 配置文件详解

    Spring 配置文件是一个或多个标准的 XML 文档,applicationContext.xml 是 Spring 的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。 在 Spring 配置文件中,主要包含了以下...

Global site tag (gtag.js) - Google Analytics