
上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-开头的资源信息。

除了可以读取当前工作目录中的配置文件资源外,也可以读取所有*.jar文件中的资源。例如,要想读取CLASSPATH下jar文件中的资源,需要使用“classpath*:路径”定位格式。
1.【mldnspring-base模块】修改资源读取类,将List集合修改为数组。

需要注意的是,采用classpath*的形式读取资源时,返回的一定是一组资源,此时需要采用资源数组进行接收。如果不是资源数组,将出现java.io.FileNotFoundException异常。
2.【mldnspring-base模块】配置spring-base.xml文件,读取所有*.jar文件中的*.MF文件。

本程序实现了CLASSPATH路径下的资源匹配。由于classpath*会在当前程序的CLASSPATH下以及所有的*.jar文件下进行查询,因此查询效率要比直接使用“classpath:路径”慢许多。