spring资源读取

Posted haibinggan-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring资源读取相关的知识,希望对你有一定的参考价值。

  spring中对资源的读取提供有自己的新方案,比传统IO操作更加智能方便。

  对于所有的资源处置,spring提供了Resource接口,该接口中的方法都是通过其父接口InputStreamSource实现的。该接口有四个常用子类,通过这四个子类实现资源获取:

    ClassPathResource、FileSystemResource、UrlResource、ByteArrayResource。

  这四个子类中最重要的是ClassPathResource,是用来读取classpath下的资源文件:

    技术分享图片

  此时可以发现,我们这样都是通过子类直接实例化父接口,而这样就违反了spring的Ioc&DI技术的理念,为了解决这样产生的耦合性问题,提供了ResourceLoader接口。用来实现接口对象的实例化。而ResourceLoader接口中提供有一个资源的加载方法:getResource() ;,在读取资源之前需要在资源定位上使用一些特殊的标记,来区分资源类型:

    文件资源:fill:路径

    网络资源:http://路径

    ClassPath资源:classpath:路径

    技术分享图片

  而获取资源中最为重要的是获取ClassPath下的资源:

    技术分享图片

  这个时候虽然避免了获取资源时使用关键字new,但是在定义资源加载器(ResourceLoader)的时候还是使用到了new,这个时候最好的做法是将资源利用配置文件进行注入,再交给容器管理

以下为重点:

  【spring-base】创建一个专门读取资源的Bean对象:

    技术分享图片

  【spring-base】在spring-base.xml中配置该类的bean对象。

    技术分享图片

    这样将实例化对象交给spring容器,避免了产生耦合:

      技术分享图片技术分享图片

    对于资源,一般读取的不是某个资源,而是某一类资源,这样就需要使用到路径通配符:

      ?  0或1位任意字符

      *  0或1或n位任意字符

      **  匹配任意的字符

    【spring-base】修改spring-base.xml

      技术分享图片

      技术分享图片

 

以上是关于spring资源读取的主要内容,如果未能解决你的问题,请参考以下文章

spring @PropertySource 读取资源文件

Spring Boot 读取静态资源文件

Spring Boot 读取静态资源文件

Spring中对资源的读取支持

Spring读取外部的资源配置文件—@PropertySource和@Value实现资源文件配置

Spring Maven 从资源文件夹中读取