没有合适的资源?快使用搜索试试~ 我知道了~
浅析Spring配置中的classpath:与classpath*:的区别
6 下载量 105 浏览量
2020-08-18
16:24:56
上传
评论 1
收藏 49KB PDF 举报
温馨提示
试读
1页
主要介绍了Spring配置中的"classpath:"与"classpath*:"的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
资源推荐
资源详情
资源评论
浅析浅析Spring配置中的配置中的classpath:与与classpath*:的区别的区别
主要介绍了Spring配置中的"classpath:"与"classpath*:"的区别,本文给大家介绍的非常详细,对大家的学习或工
作具有一定的参考借鉴价值,需要的朋友可以参考下
概念解释及使用场景:
classpath是指WEB-INF文件夹下的classes目录。
通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下:
<!--系统自动加载文件-->
<!--这里使用的是classpath*:的形式-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/spring-context-*.xml</param-value>
</context-param>
<!--配置spring的context监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
经过如上的写法,可能会认为这个就是web.xml固有的写法,其实不是,这种写法是spring的写法,与web.xml无关。可以通
过spring的方法使用这种方式进行路径的读取。
classpath和和classpath*区别:区别:
classpath:只会到你的class路径中查找找文件。
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。
注意:用classpath*:需要遍历所有的classpath,所以加载速度是很慢的;因此,在规划的时候,应该尽可能规划好资源文件
所在的路径,尽量避免使用classpath*。
classpath*的使用:的使用:
当项目中有多个classpath路径,并同时加载多个classpath路径下(此种情况多数不会遇到)的文件,*就发挥了作用,如果不
加*,则表示仅仅加载第一个classpath路径。
一些使用技巧:
1、从上面使用的场景看,可以在路径上使用通配符*进行模糊查找。比如:
<param-value>classpath:applicationContext-*.xml</param-value>
2、"**/"表示的是任意目录;"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。
3、程序部署到tomcat后,src目录下的配置文件会和class文件一样,自动copy到应用的WEB-INF/classes目录下;classpath:
与classpath*:的区别在于,前者只会从第一个classpath中加载,而后者会从所有的classpath中加载。
4、如果要加载的资源,不在当前ClassLoader的路径里,那么用classpath:前缀是找不到的,这种情况下就需要使用
classpath*:前缀。
5、在多个classpath中存在同名资源,都需要加载时,那么用classpath:只会加载第一个,这种情况下也需要用classpath*:前
缀。
总结总结
到此这篇关于Spring配置中的的文章就介绍到这了,更多相关spring 配置classpath:与classpath*:的区别内容请搜索我们以前的
文章或继续浏览下面的相关文章希望大家以后多多支持我们!
资源评论
weixin_38653878
- 粉丝: 1
- 资源: 941
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功