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 框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐。尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统...
在Spring框架中,加载多个配置文件是常见的需求,特别是在大型项目中,为了保持代码的整洁和模块化,通常会将不同的配置分散到多个文件中。本文将深入探讨如何在Spring中实现这一功能。 首先,Spring提供了多种方式...
需要注意的是,使用通配符的方式仅能匹配位于文件系统中的XML配置文件,对于打包在JAR包内的配置文件则不起作用。这是因为`ClassPathXmlApplicationContext`默认从classpath中查找配置文件,而这里的“文件系统”指...
Spring 框架中的配置文件加载是非常重要的,特别是在大型项目中,需要加载多个配置文件以实现模块化和灵活性。那么,Spring 是如何加载配置多个配置文件的呢?下面我们将通过实例代码详细介绍 Spring 如何加载配置多...
在大型项目中,可能存在多个相同名称的配置文件,Spring会按照类路径的顺序加载。确保配置文件的加载顺序符合项目需求,避免覆盖或遗漏。 **步骤5:使用Spring Boot的自动配置** 如果项目使用了Spring Boot,可以...
当我们构建一个基于Spring的应用时,经常需要从jar包中加载配置文件,以便管理依赖注入和其它服务。在Spring中,我们通常使用`classpath:`或`classpath*:`前缀来指定资源的位置。这两个前缀在处理多个类路径位置时有...
为了使Spring Boot应用能够加载并使用这个XML配置,我们需要创建一个配置类`WebMvcConfig`,并使用`@ImportResource`注解来导入`bean.xml`。 ```java package org.taoguoguo; import org.springframework.context....
除了默认的`/WEB-INF/applicationContext.xml`,你还可以通过`contextConfigLocation`指定多个配置文件,用逗号分隔它们,例如`<param-value>classpath:app-config.xml,classpath:db-config.xml</param-value>`,这...
当存在多个XML配置文件或Java配置时,需要注意bean的加载顺序和覆盖规则。Spring Boot会按照它们被加载的顺序处理bean定义,后加载的配置可能会覆盖之前加载的相同bean定义。 6. **Spring Boot AutoConfigure**: ...
在Spring框架中,动态加载配置文件是一项重要的...总的来说,Spring动态加载配置文件涉及到IoC容器、属性源、配置加载策略和刷新机制等多个方面。理解和掌握这些知识点,可以帮助我们构建更加灵活和适应性强的应用。
当项目变得复杂,包含多个模块时,这种单一配置文件的方式可能会导致混乱。因此,我们需要为每个模块创建独立的配置文件,以便更好地组织和管理。 1. **创建模块化的配置文件** - 每个模块都应该有自己的`src/main...
7. 使用 profiles:Spring支持基于不同环境(如开发、测试、生产)的配置profile,这样可以在不同的环境中使用不同的配置,而无需合并多个XML配置文件。 8. 使用`<import>`引入其他配置:当配置文件变得庞大时,...
这两个类都是Spring用于创建应用上下文的实现,主要用来加载XML配置文件并初始化Spring容器。 1. `ClassPathXmlApplicationContext`:此上下文主要用于加载类路径(classpath)下的XML配置文件。这意味着配置文件应...
在Spring Boot应用中,我们通常使用YAML或properties文件来管理配置,但有时也需要与传统的XML配置文件集成,特别是当有遗留系统或者需要利用特定XML配置功能时。本篇文章将深入探讨如何在Spring Boot中读取不同路径...
如果XML配置文件位于`src/main/resources/META-INF/spring.factories`文件中,Spring Boot会自动加载它们。创建一个名为`org.springframework.boot.autoconfigure.EnableAutoConfiguration`的键,并将你的XML配置...
`context-param`用于指定Spring上下文配置文件的位置,通常是一个或多个路径,用逗号分隔,如`classpath*:spring/spring-config.xml`。`ContextLoaderListener`监听器会在Web应用启动时读取这些配置文件,创建Spring...
1. **使用`@ImportResource`注解**:在Spring Boot的主配置类(通常标注了`@SpringBootApplication`)上添加`@ImportResource`注解,指定XML配置文件的路径。例如: ```java @SpringBootApplication @...
在Spring框架中,`applicationContext.xml`是核心的配置文件,它定义了应用上下文,即Spring容器,用来管理所有bean的创建、初始化、依赖注入以及生命周期。这个文件使用XML语法,遵循特定的命名空间和schema,以...
Spring 配置文件是一个或多个标准的 XML 文档,applicationContext.xml 是 Spring 的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。 在 Spring 配置文件中,主要包含了以下...