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

      

      

原文地址:https://www.cnblogs.com/haibinggan-/p/9237109.html

时间: 2024-10-16 06:53:58

spring资源读取的相关文章

纯 java 实现 Http 资源读取工具,支持发送和接收数据,不依赖任何第三方 jar 包

原文:纯 java 实现 Http 资源读取工具,支持发送和接收数据,不依赖任何第三方 jar 包 源代码下载地址:http://www.zuidaima.com/share/1550463379950592.htm 纯 java 实现 Http 资源读取工具,支持发送和接收数据,不依赖任何第三方 jar 包 1. 抓取指定 URL 的资源,可以作为流,也可以作为 String 2. 向指定 URL POST 数据,模拟表单提交. 例如:你想模拟 XXX 自动登陆,然后再发表心情.签名之类的 3

攻城狮在路上(贰) Spring(三)--- Spring 资源访问利器Resource接口

Spring为了更好的满足各种底层资源的访问需求.设计了一个Resource接口,提供了更强的访问底层资源的能力.Spring框架使用Resource装载各种资源,包括配置文件资源.国际化属性文件资源等.一.Resource接口的主要方法有: boolean exists():资源是否存在. boolean isOpen():资源是否打开. URL getURL():如果底层资源可以表示为URL,该方法返回对应的URL对象. File getFile():如果底层资源对应一个文件,该方法返回对应

Android 的assets文件资源与raw文件资源读取

res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. res/raw和assets的不同点: 1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename:assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类. 2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹 *读取文件资源: 1

OGRE之资源读取进度条的实现

解析SampleBrowser项目的SampleBrowser.h文件,我们可以发现其中有这么一个函数: /*----------------------------------------------------------------------------- | Initialises only the browser's resources and those most commonly used | by samples. This way, additional special co

spring @PropertySource 读取资源文件

项目中经常出现需要读取资源文件进行文件的配置 spring3.1开始开启@@PropertySource注解,可以很快的读取到资源文件,配合Environment的使用可以很快的读取到所需要的数据. 在pom配置文件中增加了对spring的jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs

Spring MVC 读取静态资源时404错误

背景:web.xml配置时拦截策略是拦截所有请求: <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-

Spring Boot读取配置的几种方式

读取application文件 在application.yml或者properties文件中添加: info.address=USAinfo.company=Springinfo.degree=high @Value注解读取方式 12345678910111213141516171819202122232425262728293031323334353637383940 import org.springframework.beans.factory.annotation.Value;impo

Spring资源抽象Resource

JDK操纵底层资源基本就是 java.net.URL .java.io.File .java.util.Properties这些.取资源基本是根据绝对路径或当前类的相对路径来取.从类路径或Web容器上下文中获取资源的时候也不方便.Resource接口提供了更强大的访问底层资源的能力. 废话不多说,看源码之前先来看一下Resource的类结构. 一.类结构 一.Resource接口 如图,Resouce接口并不是一个根接口,它继承了一个简单的父接口 InputStreamSource,这个接口只有

spring boot 读取配置文件(application.yml)中的属性值111

在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: [html] view plain copy <!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-proc