Spring 对资源进行了很好的抽象提供了,了解设计的结构,看见名字就能大致知道他的功能。
资源
InputStreamSource 只有一个功能获取一个输入流
Resource 资源增加了对资源的一下功能入exists()资源是否存在,getUrl等资源的常用方法。
WritableResource 可写接口资源
AbstractResource Resource的基础实现类,实现了Resource的
AbstractResource 的子类就是一些具体的Resource类,通过不同方式进来不同的资源,包含有一些资源特有的方法。
加载
资源需要路径,程序才能知道去哪里获取资源。Spring提供了强大资源加载机制
[地址前缀]Ant风格的资源地址
- 前缀
classpath: 程序类路径 包下
classpath*: 程序所有使用的包下
file: 文件路径
http:// 使用UrlResource从服务器加载资源
ftp:// 使用UrlResouce从Ftp服务费加载资源
[空] 更加当时采用的具体Resource实现类,获取资源 - Ant资源路径
? 匹配一个字符
*
匹配任意字符
** 匹配多层路径
资源加载器
ResourceLoader 定义了getResource()
DefaultResourceLoader 默认实现,
ResourcePatternResolver 拓展ResourceLoader,可以获取一组资源
FileSystemResourceLoader 文件path获取resource
ResourcePatternResolver 资源前缀和Ant资源路径支持
PathMatchingResourcePatternResolver 资源前缀和Ant资源路径支持实现类。
- 资源可以不通过加载器直接加载,当前前提是能指定确定的资源。
- 也可以通过资源加载器更方便,能使用资源前缀,ant 去批量获取功能更加强大的加载资源。