知识点

相关文章

更多

最近更新

更多

【第四章】 资源 之 4.1 基础知识 ——跟我学spring3

2019-03-01 11:49|来源: 开涛

4.1.1  概述

      在日常程序开发中,处理外部资源是很繁琐的事情,我们可能需要处理URL资源、File资源资源、ClassPath相关资源、服务器相关资源(JBoss AS 5.x上的VFS资源)等等很多资源。因此处理这些资源需要使用不同的接口,这就增加了我们系统的复杂性;而且处理这些资源步骤都是类似的(打开资源、读取资源、关闭资源),因此如果能抽象出一个统一的接口来对这些底层资源进行统一访问,是不是很方便,而且使我们系统更加简洁,都是对不同的底层资源使用同一个接口进行访问。

      Spring 提供一个Resource接口来统一这些底层资源一致的访问,而且提供了一些便利的接口,从而能提供我们的生产力。

4.1.2  Resource接口

      Spring的Resource接口代表底层外部资源,提供了对底层外部资源的一致性访问接口。

public interface InputStreamSource {  
    InputStream getInputStream() throws IOException;  
}
public interface Resource extends InputStreamSource {  
     boolean exists();  
     boolean isReadable();  
     boolean isOpen();  
     URL getURL() throws IOException;  
     URI getURI() throws IOException;  
     File getFile() throws IOException;  
     long contentLength() throws IOException;  
     long lastModified() throws IOException;  
     Resource createRelative(String relativePath) throws IOException;  
     String getFilename();  
     String getDescription();  
}

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

相关问答

更多
  • 电脑基础知识[2022-06-01]

    我有《计算机应用基础》课件,是我大一考试用的,都是一些基础的,要考的话大多考的是这些。 以下是内容: 第一章 计算机基础 第二章 数据的表示与运算 第三章 操作系统基础 第四章 文字处理基础 第五章 表格处理基础 PPT格式,你要不?要就发你邮箱里,邮箱补上。
  • --计算机基础知识定义如下:具有计算机的基础知识和初步应用能力,掌握字处理(word)、电子表格(excel)和演示文稿(powerpoint) 等办公自动化(Office或WPS)软件的使用及因特网(Internet)应用的基本技能,具备从事机关、企事业单位文秘和办公信息计算机化工作的能力。 --持有全国计算机等级考试1级证书,即可证明持有者拥有上述能力.当然了,不持有证书的不一定没有上述能力. --熟练应用计算机以及能够应付各种计算机的小问题也是计算机基础知识很重要的一个体现.如果在应用方面有什么问题的 ...
  • USB 硬盘 255 HTML(或html) 图形 电子邮件地址 波特率 调制解调器 对对错错错 错错错对错 错对错对对 DAADC ABADB BDBCB ABE CE BCDE BE ABCDE ABCE ABC ABCD ABC ABCDE
  • 给你个下载地址,很全的: http://www.verycd.com/topics/93279/ 滚动屏幕找到你要的内容,自己下载吧
  • 如果是掌握hadoop的使用,java基础好就可以了,看看hadoop权威指南。想深入学习源码的话,就需要些网络编程的知识了。 不过个人觉得hadoop最终是用于数据分析的,所以数据挖掘,机器学习这样的算法反而比掌握hadoop本身更重要一些,重点看用hadoop来做什么。 我也是初学,只是一点体会,希望能帮到你。
  • 一开始左边有有个蛋,按左他会停下来。1,连续的按左右,它会突然冲刺,在那一瞬间跳起来就行。(多试几次)。 2,再就是旋转的,你往左走他逆时针,往右顺时针,慢慢的进去,左右左右的出来,但要跳一下。有一块会掉。 4,之后是三个问号,不能随便跳,第一个问号。要把握好时间,让锯齿朝上并往又偏一点。因为左边还有一个问号是过关必备的,挡着了就拿不到了。也不要太下,因为你要跳过去。第二个问号是头 盔,吃了之后回去顶前面三个问号 5,先顶下面那个问号,掉下一个方块拿来垫脚,再移过去叠起来,再移过去顶最上面的,会有一个炸弹, ...