Spring 對資源進(jìn)行了很好的抽象提供了嘹吨,了解設(shè)計(jì)的結(jié)構(gòu)搬味,看見名字就能大致知道他的功能。
資源
InputStreamSource 只有一個(gè)功能獲取一個(gè)輸入流
Resource 資源增加了對資源的一下功能入exists()資源是否存在蟀拷,getUrl等資源的常用方法碰纬。
WritableResource 可寫接口資源
AbstractResource Resource的基礎(chǔ)實(shí)現(xiàn)類,實(shí)現(xiàn)了Resource的
AbstractResource 的子類就是一些具體的Resource類问芬,通過不同方式進(jìn)來不同的資源悦析,包含有一些資源特有的方法。
加載
資源需要路徑此衅,程序才能知道去哪里獲取資源强戴。Spring提供了強(qiáng)大資源加載機(jī)制
[地址前綴]Ant風(fēng)格的資源地址
- 前綴
classpath: 程序類路徑 包下
classpath*: 程序所有使用的包下
file: 文件路徑
http:// 使用UrlResource從服務(wù)器加載資源
ftp:// 使用UrlResouce從Ftp服務(wù)費(fèi)加載資源
[空] 更加當(dāng)時(shí)采用的具體Resource實(shí)現(xiàn)類,獲取資源 - Ant資源路徑
? 匹配一個(gè)字符
*
匹配任意字符
** 匹配多層路徑
資源加載器
ResourceLoader 定義了getResource()
DefaultResourceLoader 默認(rèn)實(shí)現(xiàn)挡鞍,
ResourcePatternResolver 拓展ResourceLoader,可以獲取一組資源
FileSystemResourceLoader 文件path獲取resource
ResourcePatternResolver 資源前綴和Ant資源路徑支持
PathMatchingResourcePatternResolver 資源前綴和Ant資源路徑支持實(shí)現(xiàn)類骑歹。
- 資源可以不通過加載器直接加載,當(dāng)前前提是能指定確定的資源墨微。
- 也可以通過資源加載器更方便陵刹,能使用資源前綴,ant 去批量獲取功能更加強(qiáng)大的加載資源欢嘿。