Spring中classpath*:使用通配符加载jar当中的资源无效的原因

来源:互联网 发布:java 7 64位官方下载 编辑:程序博客网 时间:2024/06/09 14:33
Spring采用classpath*:前缀开头时,是可以使用**以及*来作为通配符,从jar当中加载资源(例如xml配置文件)的,但是一次偶然的机会发现只要使用了通配符,就无法正确从jar当中加载配置文件。web.xml当中的配置如下:
<init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring/applicationContext*.xml</param-value></init-param>


多次尝试发现,如果applicationContext*.xml文件位于磁盘上而不是jar内部,则运行正常。如果位于jar内部,则无法正确加载。


经多方查找资料,原来是打包为jar过程中选项设置不正确导致。导出jar时,下图所示的选项必须勾选,则通配符工作正常,否则无效。