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

      

      

猜你喜欢

转载自www.cnblogs.com/haibinggan-/p/9237109.html