spring加载resource时classpath*:与classpath:的区别

来源:互联网 发布:软件架构怎么设计 编辑:程序博客网 时间:2024/05/23 00:47

对于spring加载resource时classpath*和classpath的区别,一直没有研究,今天在此总结一下:

Spring可以通过指定classpath*:或classpath:前缀加路径的方式从classpath下加载文件。
1)classpath*:可以从多个jar文件中加载相同的文件。
2)classpath:只能加载找到的第一个文件。
或者换句话说:classpath只会加载第一个有文件的classpath,classpath*会从所有的classpath下加载。


一般加载的优先级:当前classes > jar包中的classes。


如果项目中使用通配符加载资源文件,此时classpath*:就可以派上用场了,如果不加*,只会加载第一个找到的classpath下的文件。例子如下:
<param-value>classpath*:spring/spring-*.xml</param-value>


注意:
用classpath*:需要遍历所有的classpath,所以加载速度比较慢,个人喜欢使用classpath:,但前提是规划好资源文件的路径,尽量避免重名,导致资源文件加载不到的问题。
阅读全文
1 0
原创粉丝点击