zoukankan      html  css  js  c++  java
  • 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

          

          

  • 相关阅读:
    CTF-1-5题笔记
    无相劫指:Web安全之其他专题—第七天
    七伤拳:Web安全之文件包含漏洞专题—第六天
    CTF-输入密码查看flag -80
    工业级路由器采用的协议和功能
    PLC模拟量采集模块在工控领域的应用
    串口服务器的作用和工作原理是什么
    在PLC中开关量采集模块的作用
    4G DTU和4G工业路由器有哪些区别?
    应该怎么提升4G工业路由器的无线信号?
  • 原文地址:https://www.cnblogs.com/haibinggan-/p/9237109.html
Copyright © 2011-2022 走看看