spring配置文件路径你知多少

org.springframework.core.io.supportClassPathMatchingResourcePatternResolver
org.springframework.utilClass AntPathMatcher

所有的配置官方说明请参照这两个类

在web.xml配置spring的配置文件

 

<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>这里写路劲</param-value>
</context-param>

首先上几种写法(这个是spring的api复制的)

 

1. /WEB-INF/*-context.xml
2. com/mycompany/**/applicationContext.xml
3. file:C:/some/path/*-context.xml
4. classpath:com/mycompany/**/applicationContext.xml
 

这些路径看起来很乱有木有

这里要说明一点,不要以为路径中的匹配符号是正则表达式(开始我是这样想的),这些符号的完整定义

----------------------------------------------------------------------

?    匹配一个任意字符   aa?  可以匹配  aa1  aab  但是不能匹配aa

*    匹配零个或者多个字符  aa* 可以匹配 aa1 aab  aa aaa

**  两个**不要以为是上面那个* 写两个的意思。 它的意思是匹配任意个路径 aa/**/bb  可以匹配aa/b/c/bb   aa/bb

aa  和bb之间可以个任意目录

----------------------------------------------------------------------

 

 

 

1.会查找到WEB-INF目录下的以"-context.xml"结尾的文件  在WEB-INF下的 a-context.xml b-context.xml都会被找到

2.com/mycompany/目录下所有的applicationContext.xml都会被找到

3.file 表示会根据文件系统的路径查找 这个条会找到 c盘下的/some/path目录以"-context.xml"的文件都会被找到

4.查找classpath下的com/mycompany/包中所有子包的applicationContext.xml文件

 

 

 

 

这个东西却是搞的有点复杂了。

 

 

完了吗 ? 还没有 还有 classpath*

 

 

 

classpath*:applicationContext.xml    classpath:applicationContext.xml 

区别是神马?classpath还有classpathaa或者classpathbb 不会呀,java只有classpath,那,那个*是神马意思。。。。 

好吧我告诉你

classpath*中的*并非 匹配零或者多个字符的那个*  (太乱了有木有)

classpath*是一种特殊的表示方法  ,它告诉spring找配置文件的时候WEB-INF/LIB中的jar文件也要找

classpath*:applicationContext.xml会找到所有jar文件根目录的applicationContext.xml文件,当然也包括classpath中的applicationContext.xml

这里有一点要注意  classpath*如果要在jar文件的根目录查找  就不能使用上面的那种模糊匹配,比如

classpath*:app*.xml 这样只能找到classpath下的app开头*.xml结尾的配置文件  效果和classpath:app*.xml一样,jar中的会被忽略

如果想查找jar中的配置文件就把配置文件放在jar文件的根目录下级下的目录(包括下级) 例如

jar文件中springConfig/applicationContext.xml springConfig/applicationAA.xml

可以使用 classpath*:springConfig/app*.xml找到这两个配置文件,总之要找到jar文件中的配置文件,还要使用模糊匹配,配置文件就应该在jar文件根目录除外的其他任何地方,然后根据路径名称模糊匹配即可找到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值