• 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

          

          

  • 相关阅读:
    CentOS部署LAMP环境
    Markdown表格
    Markdown图片
    连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法
    使用docker搭建禅道
    高防服务器流量清洗
    流量清洗系统中 netflow方式 和镜像流量方式
    golang 单元测试
    微信公众号创建自定义菜单失败:no permission to use weapp in menu hint?
    Spring常用注解
  • 原文地址:https://www.cnblogs.com/haibinggan-/p/9237109.html
Copyright © 2020-2023  润新知