如何使用多个Spring的xml配置文件(多模块配置)
在用Struts Spring Hibernate进行项目团队开发的时候,我们每个开发人员可能都会用到spring的配置文件,如果我们每个开放人员都用同一个的话,这样会给项目开发带来一定的影响,不过大家不用急,Spring为我们提供了很好的方法,我们可以写多个xml文件,然后将每个文件引入进来就行了,话不多说了,马上开始!!
方法一、在l中定义 contextConfigLocation参数.spring会使用这个参数加载.所有”逗号”分割的xml.如果没有这个参数,spring默认加载l文件(我们现在将Spring配置文件都放在WEB-INF下面)
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:conf/spring/applicationContext_core*.xml,
classpath*:conf/spring/applicationContext_dict*.xml,
classpath*:conf/spring/l,
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:conf/spring/applicationContext_core*.xml,
classpath*:conf/spring/applicationContext_dict*.xml,
classpath*:conf/spring/l,
classpath*:conf/spring/applicationContext_staff*.xml,
classpath*:conf/spring/l
classpath*:conf/spring/applicationContext_modules*.xml
classpath*:conf/spring/applicationContext_cti*.xml
classpath*:conf/spring/applicationContext_apm*.xml
</param-value>
</context-param>
classpath*:conf/spring/l
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 提供javax.servlet.ServletContextListener 的一个实现类org.t.ContextLoaderListener ,该类可以作为listener 使用,它会在创建时自动查WEB-INF/ 下的l 文件。
因此,如果只有一个配置文件,并且文件名为l ,则只需在l文
件中增加如下代码即可:
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
如果有多个配置文件需要载入,则考虑使用<context-param>即元素来确定配置文件的文件名。由于ContextLoaderListener加载时,会查名为contextConfigLocation的参数。
因此,配置context-param时参数名字应该是contextConfigLocation。
带多个配置文件的l 文件如下:
<1-- XML 文件的文件头二〉
<?xml version="1.0 " encoding="Iso8859-1"?>
< 1 文件的DTD 等信息一〉
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems. c.//DTD Web Application 2.3//EN" ''java.sun/dtd/web-app_2_3.dtd''>
<web-app>
<!一确定多个配置文件>
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
如果有多个配置文件需要载入,则考虑使用<context-param>即元素来确定配置文件的文件名。由于ContextLoaderListener加载时,会查名为contextConfigLocation的参数。
因此,配置context-param时参数名字应该是contextConfigLocation。
带多个配置文件的l 文件如下:
<1-- XML 文件的文件头二〉
<?xml version="1.0 " encoding="Iso8859-1"?>
< 1 文件的DTD 等信息一〉
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems. c.//DTD Web Application 2.3//EN" ''java.sun/dtd/web-app_2_3.dtd''>
<web-app>
<!一确定多个配置文件>
<context-param>
<1-- 参数名为contextConfigLocation…〉
<param-name>contextConfigLocation</param-name>
<!一多个配置文件之间以,隔开二〉
<param-value>/WEB-工l./WEB-INF/application
l</param-value>
</context-param>
<1-- 参数名为contextConfigLocation…〉
<param-name>contextConfigLocation</param-name>
<!一多个配置文件之间以,隔开二〉
<param-value>/WEB-工l./WEB-INF/application
l</param-value>
</context-param>
<!-- 采用listener创建ApplicationContext 实例-->
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
</web-app>
spring怎么读文件如果没有contextConfigLocation 指定配置文件,则Spring 自动查applicationContext. xrnl 配置文件。如果有contextConfigLocation,则利用该参数确定的配置文件。该参数指定的一个字符串, Spring 的ContextLoaderListener 负责将该字符串分解成多个配置文件,逗号",
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
</web-app>
spring怎么读文件如果没有contextConfigLocation 指定配置文件,则Spring 自动查applicationContext. xrnl 配置文件。如果有contextConfigLocation,则利用该参数确定的配置文件。该参数指定的一个字符串, Spring 的ContextLoaderListener 负责将该字符串分解成多个配置文件,逗号",
"、空格" "及分号";"都可作为字符串的分割符。如果既没有applicationContext. xrnl 文件,也没有使用contextConfigLocation参数确定配置文件,或者contextConfigLocation确定的配置文件不存在。都将导致Spring 无法加载配置文件或无法正常创建ApplicationContext 实例
2, 使用匹配符
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
比如说用到Hibernate,则把hibernate相关的配置放在l这一个文件,而一些全局相关的信息则放在l,其他的配置类似.这样就可以加载了,不必写用空格或是逗号分开!
3, 如果使用struts加载多个spring配置文件.下面这个配置的其实也是contextConfigLocation变量.
l里面加这个
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/l,/l,,,,,,,"/>
4,如果是非j2ee应用直接程序加载.
ApplicationContext act = new ClassPathXmlApplicationContext(new String[]{"l","l"});
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);
reader.loadBeanDefinitions(new ClassPathResource("l"));
<set-property property="contextConfigLocation" value="/l,/l,,,,,,,"/>
4,如果是非j2ee应用直接程序加载.
ApplicationContext act = new ClassPathXmlApplicationContext(new String[]{"l","l"});
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);
reader.loadBeanDefinitions(new ClassPathResource("l"));
reader.loadBeanDefinitions(new ClassPathResource("l"));
BeanFactory bf = (BeanFactory)reg;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论