当前位置:首页 > 开发 > 编程语言 > Spring > 正文

spring 系统资源访问

发表于: 2011-10-25   作者:bozch   来源:转载   浏览次数:
摘要: 简介: 在标准java.net.URL类以及各种URL前缀处理方式中,并没有提供足够的方式来访问底层的资源。例如,java的URL标准实现中没有相关的方法能够从classpath或者和servletContext相关的地方获取相关的资源。虽然可以针对特殊的URL前缀注册新的处理方式,一般情况下会比较麻烦,并且URL接口仍然会缺少一些别要的功能,例如,需要一个方法来检查URL指向的URL资源是不是

简介:

在标准java.net.URL类以及各种URL前缀处理方式中,并没有提供足够的方式来访问底层的资源。例如,java的URL标准实现中没有相关的方法能够从classpath或者和servletContext相关的地方获取相关的资源。虽然可以针对特殊的URL前缀注册新的处理方式,一般情况下会比较麻烦,并且URL接口仍然会缺少一些别要的功能,例如,需要一个方法来检查URL指向的URL资源是不是存在。

1、Resource接口

spring提供的Resource是一个相对功能完善的访问底层资源的接口。

  public interface Resource extends InputStreamSource {
       boolean exists();
       boolean isOpen();
       URL getURL() throws IOException;
       File getFile() throws IOException;
       Resource createRelative(String relativePath) throws IOException;
       String getFilename();
       String getDescription();
}

 

public interface InputStreamSource {
       InputStream getInputStream() throws IOException;
}

 

Resource接口提供的主要的方法有:

   1、getInputStream():定位并打开资源,返回能够读取资源的InputStream。(It is expected that)每次被调用的时候都会返回一个新的InputStream。此方法主要是负责调用方能够关闭读取流。

  2、exists():返回一个能够表明当前资源文件是否真正存在的逻辑值。

  3、isOpen():返回一个逻辑值,它能够表明当前的资源是不是提供了一个打开的流管道。如果逻辑值为true,InputStream就不能被多次读取,并且必须被读取一次后立即将资源关闭避免资源泄露。所有的资源Resource实现一般都为false,并带着异常InputStream。

  4、getDescription():返回对当前资源的描述,一般使用资源时被作为错误输出。这个一般是文件的全名或者是资源的URL。

通过其他的方法能够获得资源对应的URL或File对象(条件是Resorce的实现是兼容并支持)。

 

      spring本身大量的应用了抽象的Resource接口,当需要资源的时候,将Resource作为方法参数。在一些spring Api提供的另一些方法中,例如:不同ApplicationContext实现的构造方法中,将一个简单的或者带特殊前缀的字符串路径做为参数来创建相应的context实现。

*****spring内置的Resource实现

    spring本身提供了一定数量的可以直接使用的Resource实现。

    UrlResource:URL字符前缀识别(file,http,ftp etc),某些类隐含UrlResource用来访问资源(方法参数中含有资源路径前缀classpath……,如果没有前缀则作为一个标准的URL)

    ClassPathResource:一般通过线程上下文类加载器(指定的类加载器)或者一个制定的用来加载资源的类。Resource的实现能够将存在于文件系统中的类路径文件识别为java.io.File,对于jar包或者通过servlet引擎等其他任何环境解压的文件是不能够被识别的。为了能够处理上述情况,不同的Resource实现一般支持解析为java.net.URL.

    FileSystemResource:(java.io.File)……

    ServletContextResource:()

    InpurSreamResource:()

    ByteArrayResource:()

    

 

spring 系统资源访问

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
欢迎交流转载,请注明出处:http://www.cnblogs.com/shizhongtao/p/3490037.html 上一篇我只是简单
简介 访问数据库的方式有很多种,最简单原始的方式无非是通过java jdbc库去直接访问。这种方式实现
GrantedAuthority 用户在认证成功后查询处理用户拥有的所有权限,Authentication中存储了用户的所有
本部分主要介绍Spring的JDBC模板,JDBC模板的使用,结合Java开源小型数据库HSQL来做详细介绍。 JDBC
上一篇我们介绍了HSQL数据库的基本概念和操作,我们现在从HSQL的服务器模式开始,使用Spring来操作J
本文接 上一篇继续研究JDBC模板。 之前说的都是插入操作,在我们使用自增主键的时候有时我们想立刻
上一篇以简单介绍了一点RESTFUL URL Spring MVC 3.0中一个重大的变化是增加RESTFUL URL功能,可以通
要了解Spring为什么要提供统一的异常访问层次体系,得先从DAO模式说起. 不管是一个逻辑简单的小软件
曾几何时Spring的代码、jar包及文档都放在一个zip包中一起发布,以这种方式发布可以直接向需要的信
本部分主要介绍Spring的JDBC模板,JDBC模板的使用,结合Java开源小型数据库HSQL来做详细介绍。 JDBC
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号