spring加载jar包中多个xml配置文件 mappingLocations

本文详细探讨了Spring在加载jar包内的XML配置文件时遇到的问题及解决方案。当使用classpath通配符加载配置文件时,Spring无法正确识别jar包内的文件。建议通过在主配置文件中import子配置文件,或者使用特定格式的classpath路径来加载jar包中的XML。此外,文章提供了多种加载多个配置文件的方法,包括使用mappingResources、mappingLocations和mappingDirectoryLocations等属性。
摘要由CSDN通过智能技术生成

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

Java代码

复制代码
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value> 
classpath*:beanconfigs/applicationContext_1.xml, 
classpath*:beanconfigs/applicationContext_2.xml,
... 
</param-value> 
</context-param> 
复制代码

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

Java代码

<import resource="beanconfigs/applicationContext_1.xml" />
<import resource="beanconfigs/applicationContext_2.xml" />
...

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

Java代码

<import resource="beanconfigs/applicationContext_*.xml" />

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

Java代码

<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value> 
classpath*:applicationContext_all.xml 
</param-value> 
</context-param>

另,见网上资料: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代码

复制代码
<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>
复制代码

 


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

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

复制代码
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingLocations">
<list>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值