![名师讲坛: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=1739194673-QdlW4l0XdQmUiPSwYW0QpTvdtZTv4yZt-0-b135fc7fd256ebbdbf21993a1bdbaac2)
除了可以读取当前工作目录中的配置文件资源外,也可以读取所有*.jar文件中的资源。例如,要想读取CLASSPATH下jar文件中的资源,需要使用“classpath*:路径”定位格式。
1.【mldnspring-base模块】修改资源读取类,将List集合修改为数组。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer696.jpg?sign=1739194673-GnxOv71kqCfKiPNGS1hDFwLikFhTTuYQ-0-daa923c04bada49f7c1bb5f5200f31e2)
需要注意的是,采用classpath*的形式读取资源时,返回的一定是一组资源,此时需要采用资源数组进行接收。如果不是资源数组,将出现java.io.FileNotFoundException异常。
2.【mldnspring-base模块】配置spring-base.xml文件,读取所有*.jar文件中的*.MF文件。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer697.jpg?sign=1739194673-Jg4PIBA3ST2xcghi0oGRDXmHmpgYCIfV-0-99615672786a7b21707ebdbc08376ba7)
本程序实现了CLASSPATH路径下的资源匹配。由于classpath*会在当前程序的CLASSPATH下以及所有的*.jar文件下进行查询,因此查询效率要比直接使用“classpath:路径”慢许多。