最近在review别的team代码,发现有些东西绝大多数人都不太清楚, 这里分几篇文章澄清下。
比如,大多数web-based应用都采用了spring 框架,但是spring 的配置文件,一般是在web.xml中的<context-param>中定义的:
<!-- 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包中相应目录下找这个文件