Spring配置文件里加载路径中的通配符

?代表匹配任意一个字符          

 *代表匹配0个或多个任意字符           

 **/匹配任意多个目录

classpath:app-Beans.xml

查找app-Beans.xml,无匹配符需要完全匹配

classpath:App?-Beans.xml

匹配任意一个字符,比如App1-Beans.xml,App2-Beans.xml

classpath:user/*/Base-Beans.xml

匹配0个或多个字符串,比如user/1/Base-Beans.xml,user/2/Base-Beans.xml;不匹配user/Base-Beans.xml

【就是说这个在这里只能匹配 user 和 Base-Beans.xml 之间 有且只有、必须有 一级目录的情况,

换个说法也就是说一个星 * 只能匹配一个普通字符串,这个普通字符串中不能有 /

classpath:user/**/Base-Beans.xml

匹配0个或多个目录,比如user/a/b/Base-Beans.xml,匹配user/Base-Beans.xml

就是说这个在这里可以匹配 user 和 Base-Beans.xml 之间没有目录或者有任意级别目录的情况

也就是说,两个星 ** 可以匹配: 不存在字符串、普通字符串、包含 / 的字符串 3种情况

classpath:**/*-Beans.xml

查找所有路径下以-Beans.xml结尾的配置文件进行加载,比如ab-Beans.xml,但重复的文件名只加载一次

classpath*:user/**/*-Beans.xml

classpath*加载多个配置文件,即使重名也要加载,查找user目录下任意多个目录中-Beans.xml结尾的配置文件进行加载

原文地址:https://www.cnblogs.com/libin6505/p/11262353.html