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