![名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)](https://wfqqreader-1252317822.image.myqcloud.com/cover/156/29977156/b_29977156.jpg)
上QQ阅读APP看书,第一时间看更新
4.6 路径通配符
为了方便资源读取,Spring开发框架引用了Ant构建工具中所定义的通配符,以实现不同层级或不同名称匹配时的资源加载问题。具体来说,有如下3种通配符。
?:表示可匹配任意的零位或一位字符。例如,spring?.xml可匹配spring1.xml、springa.xml、spring.xml等。
*:表示可匹配零位、一位或多位字符。例如,spring-*.xml可匹配spring-service.xml、spring-action.xml等。
**:表示可匹配任意的目录。
范例:【mldnspring-base模块】读取指定spring目录中所有以spring-开头的资源信息。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer695.jpg?sign=1739531060-owr9OHn3GAC0lCpDa7KEbiSZ4RkJLIyJ-0-7f1c6be7bfeb8c5f46267877083cfd16)
除了可以读取当前工作目录中的配置文件资源外,也可以读取所有*.jar文件中的资源。例如,要想读取CLASSPATH下jar文件中的资源,需要使用“classpath*:路径”定位格式。
1.【mldnspring-base模块】修改资源读取类,将List集合修改为数组。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer696.jpg?sign=1739531060-wtYQr6cWjyhKlxih09GkQrOeQ2P0djvt-0-923649e91c7fd5b71f036d2019f4cdac)
需要注意的是,采用classpath*的形式读取资源时,返回的一定是一组资源,此时需要采用资源数组进行接收。如果不是资源数组,将出现java.io.FileNotFoundException异常。
2.【mldnspring-base模块】配置spring-base.xml文件,读取所有*.jar文件中的*.MF文件。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer697.jpg?sign=1739531060-uE4XSC51p5MrRxbMKt2ZcEq5o3KCIB6I-0-08ba92b75e75005a7f098b6441be1610)
本程序实现了CLASSPATH路径下的资源匹配。由于classpath*会在当前程序的CLASSPATH下以及所有的*.jar文件下进行查询,因此查询效率要比直接使用“classpath:路径”慢许多。