`
arison1983
  • 浏览: 28385 次
  • 性别: Icon_minigender_1
  • 来自: 新疆
最近访客 更多访客>>
社区版块
存档分类
阅读更多

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,
classpath*:conf/spring/applicationContext_staff*.xml,
classpath*:conf/spring/applicationContext_security.xml
classpath*:conf/spring/applicationContext_modules*.xml
classpath*:conf/spring/applicationContext_cti*.xml
classpath*:conf/spring/applicationContext_apm*.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 文件的文件头二〉
<?xml version="l.O" encoding="工80-8859-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创建Applicat工onContext 实例-->
<listener>
<listener-class>org.spr工ngframework.web.context.ContextLoader
Listener</listener-class>
</listener>
</web-app>
如果没有contextConfigLocation 指定配置文件,则Spring 自动查找application
Context. xrnl 配置文件。如果有contextConfigLocation,则利用该参数确定的配置文件。
该参数指定的一个字符串, Spring 的ContextLoaderListener 负责将该字符串分解成多个
配置文件,逗号","、空格" "及分号";"都可作为字符串的分割符。
如果既没有applicationContext. xrnl 文件,也没有使用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 的值小一点比较合适,因为要保证Application
Context 优先创建。如果只有一个配置文件,并且文件名为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且nl 文件如下:
<!-- XML 文件的文件头-->
<?xml version="1.0" encoding="工SO-8859-1"?>
<! -- web.xml 文件的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>
<!-- 参数名为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;

分享到:
评论

相关推荐

    SSM整合配置文件、spring-mvc.xml、spring-mybatis.xml、spring.xml、config.properties、log4j.p

    config.properties:数据库配置文件 log4j.properties:mybatis日志文件 spring-mvc.xml:spring-MVC配置文件 spring-mybatis.xml:mybatis的配置文件 spring.xml

    项目配置文件( spring-mvc.xml spring-mybatis.xml web.xml log4j.properties)

    这里提到的四个关键配置文件——`spring-mvc.xml`、`spring-mybatis.xml`、`web.xml`以及`log4j.properties`,对于一个基于Java的Web应用来说至关重要,特别是使用Spring MVC和MyBatis框架的时候。接下来,我们将...

    spring-5.3.9-dist.zip(spring-framework-5.3.9)

    在本文中,我们将深入探讨Spring框架的5.3.9版本,包括其核心特性、文档、库和XML架构。 首先,Spring 5.3.9是Spring框架的一个稳定版本,它带来了许多性能优化和新功能。Spring框架的核心理念是依赖注入...

    官方原版完整包 spring-framework-5.3.1.RELEASE.zip

    **spring-5.3.1-schema.zip** 则包含了Spring框架使用的XML schema定义。这些schema定义了如何编写XML配置文件,使开发者能够遵循一定的结构和约定,更规范地配置Spring容器及其组件。它们对于理解和编写Spring的XML...

    spring-aop-3.0.xsd spring-beans-3.0 spring-context-3.0.xsd spring-mvc-3.1.xsd

    在提供的信息中,我们关注的是 Spring 的一些关键组件和它们对应的 XML 配置文件,这些文件通常用于定义和管理 Spring 应用程序的组件。以下是关于这些文件的详细解释: 1. **spring-aop-3.0.xsd**: Spring AOP...

    spring-shiro-xml

    shiro中的与spring结合的核心代码,可以使用缓存进行存储用户信息

    ssm-spring-part.rar

    在这个压缩包中,我们有三个主要文件:`pom.xml`、`spring-ioc-xml-01`和`spring-xml-practice-02`。这些文件分别对应于Spring框架的不同方面,让我们逐一深入探讨。 1. **`pom.xml`**: 这是Maven项目的配置文件...

    spring-beans-3.0.xsd

    `spring-beans`的配置文件通常以`.xsd`为后缀,这些文件定义了XML Schema,用于验证Spring配置文件的语法和结构。本文将深入探讨`spring-beans-3.0.xsd`和`spring-beans-3.1.xsd`这两个版本的变更,以及它们在Spring...

    spring-cache.xsd+spring-encache.xsd

    标题中的"spring-cache.xsd+spring-encache.xsd"提到了两个XML Schema定义文件,它们是Spring框架中用于缓存管理的配置规范。Spring框架是一个广泛应用的Java企业级应用开发框架,它提供了多种功能,包括但不限于...

    spring-context-4.2.xsd.zip

    在Java企业级开发中,Spring框架扮演着至关重要的角色,尤其在Spring的Context模块中,通过XML Schema(XSD)进行配置,使得应用程序的组件管理和依赖注入变得简洁高效。本文将深入探讨Spring框架的Context模块以及...

    spring-xml-1.5.10.jar

    java运行依赖jar包

    spring-xml-1.5.10-sources.jar

    java运行依赖jar包

    spring-service.xml

    spring-service.xml

    spring-mybatis-spring-1.3.2.tar.gz

    在"spring-mybatis-spring-1.3.2"中,MyBatis主要负责数据库操作,通过XML配置文件或者注解方式定义SQL语句,将Java对象与数据库记录进行映射,简化了数据访问层的开发工作。MyBatis与Spring的整合,实现了DAO(Data...

    spring-boot-starter-mybatis-spring-boot-1.0.2.zip

    (1) 添加依赖:在项目的pom.xml或build.gradle文件中,引入Spring Boot Starter MyBatis的依赖。对于1.0.2版本,对应的Maven依赖如下: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-...

    spring-xml-demo:spring xml 投影演示

    本项目"spring-xml-demo"是一个关于Spring框架XML配置的示例,旨在帮助开发者理解并掌握如何使用XML来配置Spring容器。 首先,让我们了解一下Spring框架的核心概念。Spring框架的核心是IoC(Inversion of Control)...

    spring-tx-xml-12.rar

    propagation 其他没有事务的业务方法调用的时候!我们如何进行事务传递! 默认值:required:调用者有 我就有!调用者没有我自己开启一个事务 也有! dml SUPPORTS:调用者有 我就有!调用者没有我也不添加!...

    spring-mvc.xml

    spring-mvc.xml资源下载,本xml为springmvc最纯净版xml!

    spring-context.xsd

    而`spring-context.xsd`文件在Spring框架中扮演着重要的角色,它是Spring上下文配置的核心组成部分,提供了对DI开发的代码提示功能,让开发者在编写XML配置文件时能够获得有效的智能提示。 一、Spring DI原理与应用...

Global site tag (gtag.js) - Google Analytics