4.1.1 概述
在日常程序开发中,处理外部资源是很繁琐的事情,我们可能需要处理URL资源、File资源资源、ClassPath相关资源、服务器相关资源(JBoss AS 5.x上的VFS资源)等等很多资源。因此处理这些资源需要使用不同的接口,这就增加了我们系统的复杂性;而且处理这些资源步骤都是类似的(打开资源、读取资源、关闭资源),因此如果能抽象出一个统一的接口来对这些底层资源进行统一访问,是不是很方便,而且使我们系统更加简洁,都是对不同的底层资源使用同一个接口进行访问。
Spring 提供一个Resource接口来统一这些底层资源一致的访问,而且提供了一些便利的接口,从而能提供我们的生产力。
4.1.2 Resource接口
Spring的Resource接口代表底层外部资源,提供了对底层外部资源的一致性访问接口。
java代码:
java代码:
1)InputStreamSource接口解析:
getInputStream:每次调用都将返回一个新鲜的资源对应的java.io. InputStream字节流,调用者在使用完毕后必须关闭该资源。
2)Resource接口继承InputStreamSource接口,并提供一些便利方法:
exists:返回当前Resource代表的底层资源是否存在,true表示存在。
isReadable:返回当前Resource代表的底层资源是否可读,true表示可读。
isOpen:返回当前Resource代表的底层资源是否已经打开,如果返回true,则只能被读取一次然后关闭以避免内存泄漏;常见的Resource实现一般返回false。
getURL:如果当前Resource代表的底层资源能由java.util.URL代表,则返回该URL,否则抛出IOException。
getURI:如果当前Resource代表的底层资源能由java.util.URI代表,则返回该URI,否则抛出IOException。
getFile:如果当前Resource代表的底层资源能由java.io.File代表,则返回该File,否则抛出IOException。
contentLength:返回当前Resource代表的底层文件资源的长度,一般是值代表的文件资源的长度。
lastModified:返回当前Resource代表的底层资源的最后修改时间。
createRelative:用于创建相对于当前Resource代表的底层资源的资源,比如当前Resource代表文件资源“d:/test/”则createRelative(“test.txt”)将返回表文件资源“d:/test/test.txt”Resource资源。
getFilename:返回当前Resource代表的底层文件资源的文件路径,比如File资源“file://d:/test.txt”将返回“d:/test.txt”,而URL资源http://www.javass.cn将返回“”,因为只返回文件路径。
getDescription:返回当前Resource代表的底层资源的描述符,通常就是资源的全路径(实际文件名或实际URL地址)。
Resource接口提供了足够的抽象,足够满足我们日常使用。而且提供了很多内置Resource实现:ByteArrayResource、InputStreamResource 、FileSystemResource 、UrlResource 、ClassPathResource、ServletContextResource、VfsResource等。
原创内容 转自请注明【http://sishuok.com/forum/blogPost/list/0/2455.html】
相关推荐
【第四章】 资源 之 4.1 基础知识 ——跟我学spring3 【第四章】 资源 之 4.2 内置Resource实现 ——跟我学spring3 【第四章】 资源 之 4.3 访问Resource ——跟我学spring3 【第四章】 资源 之 4.4 Resource通配符...
1.11 【第四章】 资源 之 4.1 基础知识 ——跟我学spring3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153 1.12 【第四章】 资源 之 4.2 内置Resource实现 ——跟我学spring3 . . . . . ...
跟我学Spring3(4.1)资源之基础知识Java开发Java经验技巧共3页.pdf.zip
Spring概述2.1 IoC基础2.2 IoC 容器基本原理2.3 IoC的配置使用——跟我学Spring33.1 DI的配置使用3.2 循环依赖3.3 更多DI的知识 3.4 Bean的作用域 4.1 基础知识4.2 内置Resource实现4.3 访问Resource4.4 Resource...
4.1交通运输——小学生ppt学习课件
NachOS4.1版源码,NachOS是一个以学习为目的的操作系统,简单易懂,希望对初学者有所帮助。
初三上册初中化学第四章4.1 我们的水资源复习总结.ppt
4.1程序设计语言的基础知识.pptx
4.1 产品销售表——编辑排版.zip
spring4.1,源码有助于更好的学习spring框架
spring 4.1 jar包,供参考使用,适用于java初学者,希望可以帮到大家。
八年级数学下册第四章平行四边形4.1多边形1导学案无答案新版浙教版
七年级数学下册第四章因式分解4.1因式分解学案无答案新版浙教版
八年级数学下册第四章平行四边形4.1多边形2导学案1无答案新版浙教版
八年级数学下册第四章平行四边形4.1多边形2导学案2无答案新版浙教版
方正飞腾4.1基础教程 方正飞腾4.1基础教程 方正飞腾4.1基础教程 方正飞腾4.1基础教程
4.1 指数——小学生ppt学习课件
中考物理 第四章(4.1-4.3)复习导学案(无答案)
明德扬点拨FPGA高手进阶 第四章 modelsim技巧 4.1 modelsim基本技巧.docx