1.1 ResourcePatternResolver
ResourceLoader 的 Resource getResource(String location),每次只能根据 location 返回一个 Resource 。
ResourcePatternResolver 是 ResourceLoader 的扩展,它支持根据指定的资源路径匹配模式每次返回多个 Resource 实例
org.springframework.core.io.support;
public interface ResourcePatternResolver extends ResourceLoader {
String CLASSPATH_ALL_URL_PREFIX = "classpath*:";
Resource[] getResources(String locationPattern) throws IOException;
}
1.2 PathMatchingResourcePatternResolver
ResourcePatternResolver 最常用的子类
支持 ResourceLoader 和 ResourcePatternResolver 新增的 "classpath*:" 通配符前缀外,还支持 Ant风格的路径匹配模式(Ant风格类似于 "**/*.xml")
org.springframework.core.io.support;
public class PathMatchingResourcePatternResolver implements ResourcePatternResolver {
private final ResourceLoader resourceLoader;
private PathMatcher pathMatcher = new AntPathMatcher();
public PathMatchingResourcePatternResolver() {
this.resourceLoader = new DefaultResourceLoader();
}
public PathMatchingResourcePatternResolver(ResourceLoader resourceLoader) {
Assert.notNull(resourceLoader, "ResourceLoader must not be null");
this.resourceLoader = resourceLoader;
}
public PathMatchingResourcePatternResolver(@Nullable ClassLoader classLoader) {
this.resourceLoader = new DefaultResourceLoader(classLoader);
}
@Override
public