spring加载jar包中多个配置文件(转)

转自:http://evan0625.iteye.com/blog/1598366

 

在使用spring加载jar包中的配置文件时,不支持通配符,需要一个一个引入,如下所示:

Java代码

spring加载jar包中多个配置文件(转)
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value> 
classpath*:beanconfigs/applicationContext_1.xml, 
classpath*:beanconfigs/applicationContext_2.xml,
... 
</param-value> 
</context-param> 
spring加载jar包中多个配置文件(转)

这样太复杂了,对于一个大的项目而言,要在这里写入太多的配置,影响美观还害怕引入的xml减少。可以自定义一个applicationContext_all.xml,使用import引入其他配置文件,如下所示:

Java代码

spring加载jar包中多个配置文件(转)
<import resource="beanconfigs/applicationContext_1.xml" />
<import resource="beanconfigs/applicationContext_2.xml" />
...
spring加载jar包中多个配置文件(转)

可以使用通配符设置,如下所示:

Java代码

spring加载jar包中多个配置文件(转)
<import resource="beanconfigs/applicationContext_*.xml" />
spring加载jar包中多个配置文件(转)

这样在spring配置就可以写成如下所示:

Java代码

spring加载jar包中多个配置文件(转)
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value> 
classpath*:applicationContext_all.xml 
</param-value> 
</context-param>
spring加载jar包中多个配置文件(转)

另,见网上资料:http://www.iteye.com/problems/9008

 

请问Spring如何在jar文件里面按文件夹加载配置文件?

一个Web应用有多个模块(假设有org和auth两个模块), 我希望为每个模块创建一个项目, 在项目中维护模块用到的配置文件. 然后将这些模块分别打包成jar放到web应用的WEB-INF/lib下.

现在用单元测试, 在Web应用中运行单元测试, 如果在Web应用的Build Path/Project中添加模块项目, 单元测试能够成功, 如果使用Build Path/Libraries添加模块jar文件, 运行单元测试失败. Spring中加载配置文件代码如下:
Xml代码

spring加载jar包中多个配置文件(转)
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingDirectoryLocations">
<list>
<value>classpath*:/config/hibernate/app/</value>
<value>classpath*:/config/hibernate/framework/</value>
</list>
</property>
...
</bean>
spring加载jar包中多个配置文件(转)

 


每个jar包里面都有/config/hibernate/framework文件夹
网上找到一个相关的讨论: http://forum.springframework.org/archive/index.php/t-10029.html
好像是说对于directory的加载必须是文件夹必须存在于文件系统中, jar下面的文件夹找不到.不知道这个问题有没有办法解决?

我刚才试了一下, 如果把配置文件改成
Xml代码

spring加载jar包中多个配置文件(转)
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingLocations">
<list>
<value>classpath*:/config/hibernate/framework/*.xml</value>
</list>
</property>
...
</bean>
spring加载jar包中多个配置文件(转)

 


果然可以了

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

http://tech.it168.com/jd/2008-04-01/200804011615198.shtml

 

1.第一种,使用数组

  代码

spring加载jar包中多个配置文件(转)
ApplicationContext contex=new ClassXmlApplicationContext(bew String["a1.xml","a2.xml"]);
spring加载jar包中多个配置文件(转)

 


  2.第二种,只用通配符

  代码

spring加载jar包中多个配置文件(转)
ApplicationContext contex=new ClassXmlApplicationContext("a*.xml");
  //但此种方法只对文件系统中的xml文件有效,针对jar包中的无效
spring加载jar包中多个配置文件(转)

 

  3.第三种,引入

  代码

  

spring加载jar包中多个配置文件(转)
ApplicationContext contex=new ClassXmlApplicationContext("a1.xml");   //在a1.xml中   //执行resource路径为相对a1.xml的路径
spring加载jar包中多个配置文件(转)

 

spring加载jar包中多个配置文件(转),布布扣,bubuko.com

spring加载jar包中多个配置文件(转)

上一篇:c++的历史-异常


下一篇:JavaScript递归中的作用域问题