spring 资源抽象接口下的几个常用实现类
实现类 说明
ClassPathResource 类路径下的资源,资源以相对类路径的方式表示
FileSystemResource 文件系统资源,资源以文件系统路径的的方式表示,如/home/root/test.txt
ServletContextResource 为访问web上下文中的资源而设计的类,负责以相对于web应用根目录的路径加载资源,它支持以流和URL的方式访问,在war解包情况下,也可以通过File的方式访问,该类还可以直接从jar包中访问资源;
UrlResource Url封装了java.net.URL ,它使用户能够访问任何可以通URL表示的资源,如文件系统的资源、HTTP资源、FTP资源等
类型资源前缀
地址前缀 对应资源类型
classpath: 从类路径中加载资源,资源文件可以在标准的文件系统中,也可以在jar或zip的类包中。
file: 使用UrlResource从文件系统目录中装载资源,可使用绝对路径或相对路径
http:// 使用UrlResource从Web服务器中装载资源
ftp:// 使用UrlResource从FTP服务器中装载资源
无 根据具体的实现类再用对应类型的resource
Ant风格资源地址支持3种匹配符:
符号 说明
? 匹配文件名中的一个字符
- 匹配文件名中任意一个字符
** 匹配多层路径
资源加载器
类 说明
ResourceLoader 是一个interface,通过getResource(String Location)方法根据资源地址来加载资源,仅支持带资源类型前缀的表达式,不支持Ant风格的资源路径表达式。
ResourcePatternResolve 扩展自ResourceLoader接口,但也是一个interface。通过getResources(String LocationPattern)来获取资源,该方法支持带资源类型前缀和Ant风格的资源路径。
PathMachingResourcePatternResolver ResoucePatternResolve的标准实现类,多通过此类来加载资源。