Spring - Resource及ResourceLoader

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三种资源的加载

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 org.springframework.context.ApplicationContext接口是Sprin...
    0d1b415a365b阅读 5,532评论 1 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • Spring框架大量使用了Resource来访问底层资源。Resource接口提供的方法: getInputStr...
    数独题阅读 1,479评论 0 3
  • 石径迢迢忆相思,风雨潇潇诉离殇 魂魄剥离了躯体,漂浮在空中瞻望 任凭篝火在嘶鸣,鞭炮声响彻云霄 思念在心中流转,记...
    徐一刀阅读 285评论 0 0
  • 文/鹿小喵 高考成绩出来了,你考了一个不错的成绩,虽然与一本线有差距,但足以报一个好的二本学校。心满意足。报志愿的...
    鹿小喵阅读 324评论 0 3