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的标准实现类,多通过此类来加载资源。 |