资源加载: 支持哪些资源类型的地址前缀
- classpath: 从类路径中加载资源, 相对于类的根路径
- file: 使用UrlResource从文件系统目录中装载资源,可以采用绝对或者相对路径
- http:// 使用UrlResource从web服务器中装载资源
- ftp:// 使用UrlResource从ftp服务器中装载资源
没有前缀 根据ApplicationContext具体实现类采用对应的类型的Resource
和”classpath:”对应的还有一个”classpath*:”前缀,假设有多个jar包或者文件系统类路径都拥有一个相同的包名(如:com.baobaotao)
“classpath:”只会在第一个加载的com.baobaotao包下查找,而”classpath*:”会扫描所有这些jar包及类路径下出现的com.baobaotao类路径.ant风格资源地址支持3中匹配符:
- ? 匹配文件名中的一个字符
- * 匹配文件名中的任意个字符
- ** 匹配多层路径
资源加载器:
spring定义一套资源加载的接口,并提供了实现类:
ResourceLoader接口仅有一个getResource(String location)的方法,可以根据一个资源地址加载文件资源,不过,资源地址仅支持带资源类型前缀的表达式,不支持Ant风格的资源路径表达式.ResourcePatternResolver扩展ResourceLoader接口,定义了一个新的接口方法:getResources(String locationPattern),该方法支持带资源类型前缀及Ant风格的资源路径的表达式,.PathMatchingResourcePatternResolver是spring提供了标准实现类.