资源访问 - Resource
来源:互联网 发布:淘宝seo pdf 编辑:程序博客网 时间:2024/05/01 06:07
对于JAVA来说,资源访问通常有java,net.URL和文件IO流来完成,如果需要访问来自网络的资源时,通常选择URL类,可是URL类目前还无法在类加载路径或者相对于ServletContext的路径中访问资源。虽然可以使用特定的URL前缀注册新的处理类,但是这样做通常比较复杂,而且URL接口还缺少一些有用的功能,比如检查所指向的资源是否存在等。
Spring提供了一个Resource接口,该接口是所有资源访问类所实现的接口,该接口主要提供了如下几个方法:
getInputStream():定位并且打开资源,返回资源对应的输入流,每次调用都会返回新的输入流,调用者必须负责关闭输入流 isOpen():返回资源文件是否打开,如果资源文件不能多次读取,每次读取结束时应该显示关闭,以防止资源泄露 exists():返回Resource所指向的资源是否存在 getDescription():返回资源的描述信息,用于资源处理出错时输出该信息,通常是全限定文件名或者实际URL getFile():返回资源对应的File对象 getURL():返回资源对应的URL对象
Resource接口是Spring资源访问的接口,具体的资源访问由该接口的实现类完成。Spring提供了Resource接口的大量实现类:
UrlReource:访问网络资源的实现类 ClassPathResource:访问类加载路径里资源的实现类 FileSystemResource: 访问文件系统里的资源的实现类 ServletContextResource:访问相对于ServletContext路径下的资源的实现类,通常在WEB应用中使用 InputStreamResource:访问输入流资源的实现类 ByteArrayResource:访问字节数组资源的实现类
Spring提供如下两个标识性接口:
1>ResourceLoader:该接口实现类的实例可以获得一个Resource实例,该接口里有如下方法: Resource getResource(String location):该接口仅包含这个方法,该方法用于返回一个Resource实例。ApplicationContext的实现类都实现了ResourceLoader接口,因此ApplicationContext直接获取Resource实例 2>ResourceLoaderAware:该接口实现类的实例将获得一个ResourceLoader的引用。该接口包含一个方法:void setResourceLoader(ResourceLoader resourceLoader);该方法用于设置一个ResourceLoader实例。实现该接口的类之后,可以配置成Bean实例,我们不需要为该setter方法显式<property />设置参数传递,Spring容器会自动检测到实现ResourceLoaderAware接口的Bean类然后自动将自动传递给该参数作为ResourceLoader引用。
使用ResourceLoaderAware接口示例:
public class Simple implements ResourceLoaderAware { private ResourceLoader resourceloader ; @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader ; } public ResourceLoader getResourceLoader() { return resourceLoader ; }}//配置Spring.xml<beans ...> <bean id="simple" class="Simple" /></beans>//测试主程序public class test { public static void main(String[] args) { ApplicationContext act = new ClassPathXmlApplicationContext("Spring.xml") ; Simple simple = acr.getBean("simple",Simple.class) ; //检测Spring容器是否自动传入ResourceLoader属性值 ResourceLoader rl = simple.getReourceLoader() ; //控制台输出:true System.out.println("Spring容器是否将自身传入成ResourceLoader值?: + (rl == act)) ; }}
0 0
- 资源访问 - Resource
- spring资源访问Resource类
- Android Resource篇--- II 访问资源文件
- Spring之资源访问利器Resource
- 资源之访问Resource(三)
- spring3笔记4-Resource资源访问
- maven有关resource资源的管理和访问
- spring学习笔记(2)文件资源访问接口Resource
- Spring学习(九)资源访问接口Resource
- Resource(资源)
- 资源resource
- 资源 Resource
- Resource 接口是 Spring 资源访问的接口,具体的资源访问由该接口的实现类完成
- 【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
- 【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
- 【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
- 【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
- Java学习之道:Spring学习笔记 -- 资源访问(Resource接口)
- 【数据结构学习1】关于typedef,struct,&,局部全局变量,时间复杂度
- 嵌入式驱动那年的笔试面试-有干货
- 一款轻量的微信支付组件
- 无奈
- 缓存池 NodePool
- 资源访问 - Resource
- 实现字符串逆序
- lecture2.a --- 神经网络结构的分类
- Linux学习(文件五 )
- Java基础6(javaoo1)——类、对象和包
- 自写sobel时间比较
- Dispatch tasks among muliple workors
- iaas paas saas 越来越高级了。
- KMP详解(这看不懂就没办法了= =)