`
lxsgoodluck
  • 浏览: 100054 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Spring中使用classpath*加载配置文件,jar包中的配置文件不加载问题

阅读更多

jar中配置文件放在“/”(根目录)下时,通过classpath*加载配置文件,jar包中的配置文件不会加载,

这是因为Spring使用classpath加载配置文件时需要借助JDKClassLoader.getResources(String name)方法,而该方法有一个局限:当传入的参数为空字符串时,即我们本意是想从根目录获取文件,这时JDK只会返回存在于文件系统中的资源,而在jar包中的资源并不会被返回。

解决方法是将配置文件放在根的下一级目录内,例如/conf/application-context.xml,web.xml中配置为classpath*:conf/**/*application-context.xml。

 

 

 

1
0
分享到:
评论
3 楼 csjxhx 2013-07-31  
[color=darkred][/color]别v刹不[co范德萨lor=red][/color发松岛枫]发松岛枫
2 楼 vance012297 2011-01-17  
我也遇到了你的问题,有没有在不改变路径机构的前提下,解决这个问题呢?
1 楼 ferreousbox 2010-01-28  
不会的!
比如你的abc.jar包中顶层目录包含一个applicationContext-service.xml文件,并且abc.jar包放在WEB-INF/lib目录下

在web.xml中配置如下:
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
	classpath*:applicationContext.xml,
	classpath*:applicationContext-service.xml,
  </param-value>
</context-param>


这样配置,是可以自动加载的!

相关推荐

Global site tag (gtag.js) - Google Analytics