您的位置:首页 > 编程语言 > Java开发

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

2017-06-09 14:41 453 查看
对于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:,但前提是规划好资源文件的路径,尽量避免重名,导致资源文件加载不到的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: