Spring - Resource及ResourceLoader

作者: 爱蛇 | 来源:发表于2018-05-24 23:06 被阅读0次

ResourceLoader接口类层级架构图

ResourceLoader.png

ResourceLoader接口

定义了获取单个资源的操作 getResource

ResourceLoader.png

ResourcePatternResolver 扩展接口

定义了获取多个资源的操作 getResources

ResourcePatternResolver .png

PathMatchingResourcePatternResolver类

实现了ResourcePatternResolver 接口

其中AbstractApplicatonContext实现了ResourcePatternResolver接口,
具体实现使用了PathMatchingResourcePatternResolver来实现:

//初始化ResourcePatternResolver接口的实现类PathMatchingResourcePatternResolver
public AbstractApplicationContext() {
    this.resourcePatternResolver = getResourcePatternResolver();
}

//实现ResourcePatternResolver接口
@Override
public Resource[] getResources(String locationPattern) throws IOException {
     return this.resourcePatternResolver.getResources(locationPattern);
}

Spring里有几种加载资源方式,常用的有:

URL加载 -- URLResource类

加载方式包括:

  1. HTTP方式

    通过标准的http协议访问web资源,如new UrlResource(“http://地址”);

  2. FTP方式

    通过ftp协议访问资源,如new UrlResource(“ftp://地址”);

  3. 系统文件方式

    通过file协议访问本地文件系统资源,如new UrlResource(“file:d:/test.txt”);

Classpath加载 -- ClassPathResource类

加载方式包括:

  1. classpath:xxx

  2. classpath*:xxx

以上对应的类都是实现了Resource接口。

ResourceLoader 接口

资源加载的接口,主要实现类有:

FileSystemResourceLoader

ClassRelativeResourceLoader

DefaultResourceLoader

Spring使用的默认加载器
getResource方法 包含 ClassPathContextResource、ClassPathResource、URLResource三种资源的加载

相关文章

网友评论

    本文标题:Spring - Resource及ResourceLoader

    本文链接:https://www.haomeiwen.com/subject/tswpcftx.html