最近在review别的team代码,发现有些东西绝大多数人都不太清楚, 这里分几篇文章澄清下。


比如,大多数web-based应用都采用了spring 框架,但是spring 的配置文件,一般是在web.xml中的<context-param>中定义的:

1
2
3
4
5
6
7
8
<!-- Locations of Spring Configuration Files -->
< context-param >
< param-name >contextConfigLocation</ param-name >
< param-value >
classpath:com/abc/def/app-global-config.xml,
classpath*:com/abc/def/spring-*.xml
</ param-value >
</ context-param >


细心的人肯定发现,这里定义了2个位置:一个是classpath,一个是classpath* ,那么这2个有什么区别呢?


答案:

对于classpath: 它会去到当前应用的WEB-INF/classes目录下找相应的文件,如果任意层则用**

比如 classpath; com/abc/def/**/app-global-config.xml

而对于classpath*:则不仅会去WEB-INF/classes目录下找相应文件,还会去WEB-INF/lib中的任意jar包中相应目录下找这个文件

本文出自 “平行线的凝聚” 博客,请务必保留此出处http://supercharles888.blog.51cto.com/609344/1338841