Spring提供了大量的并且可以直接使用的Resource实现

1.UrlResource

UrlResource封装了一个java.net.URL,而且可以通过一个URL用于访问任何对象,例如文件、一个HTTP目标、一个FTP目标等等。所有的URLs有一个标准的String表示,因为适当的标准化前缀用于定位从一个URL类型。这包括file:对于访问文件系统路径,http:对于通过HTTP协议访问资源,ftp:通过FTP访问资源,等等

一个URLResource是使用URLResource构造器通过java代码显示的创建的,但是当你调用一个标识路径的字符串参数的API方法的时候,它是隐含创建的。对于后者,一个JavaBeans PropertyEditor 最终决定创建资源的类型。如果路径字符串包含一些通用的前缀,例如classpath:它就对于那个前缀创建一个合适的标准化的Resource。但是,如果它没有识别那个前缀,它将会假设这只是一个标准的URL字符串,并且创建一个URLResource。

2.ClassPathResource

这个类表示应该在classpath中被操作的资源。这个都可以被上下文的类加载器、一个给定类加载器、或者一个给定的类用来加载资源。

如果类路径资源存在在一个文件系统中Resource系统支持作为java.io.File来解决的,但是在jar中还没有扩展到文件系统中这个Resource实现不是这样的。为了标识这些不同的Resource实现通车支持作为java.net.URL来解决。

一个classPathResource是用ClassPathResource构造器来通过java代码显示的创建的,但是当你调用一个有标识路径字符串的API方法的时候它会隐含的创建的。对于后面的情况,一个JavaBean PropertyEditor将会识别特殊的classpath浅醉:在字符串路径并且在里面创建一个ClassPathResouce.

3.FileSystemResource

这个是一个基于Java.io.File的一个Resource实现。它也明显支持一个文件或则URL的解决方案。

4.ServletContextResource

这是一个针对ServletContext资源的Resource的实现,在相关的web 应用的根目录中解释出相对的路径。

这个常常支持Strream 和URL的访问方式,但是在一个web应用被扩展和资源保存在文件系统的时候它只允许使用java.io.File的方式来访问。不管它是被扩展还是在文件系统中,或者直接从JAR或者其他的像DB中直接的访问,这个都依赖Servlet容器。

5.InputStreamResource

这个针对InputStream的Resource实现。如果没有指定的Resource实现可用的时候才会被使用。特别是,在其他地方尽可能的使用ByteArrayResource或者其他的Resource实现。

和其他的Resource实现对比而言,这是一个描述已经从isOpen()中反会true的打开的资源。如果你需要在一些地方持有资源描述或者如果你需要多次的读取流的时候,不要使用InputStreamResource.

6.ByteArrayResource

这个是针对字节数组的Resource实现。它针对给定的字节数组创建了一个ByteArrayInputStream。
它在从给定的字节数组中加载内容时很有用的,而且不需要凭借只能使用一次的InputStreamResource。

Spring Resource之内置的Resource实现的更多相关文章

  1. Spring中 @Autowired注解与@Resource注解的区别

    Spring中 @Autowired注解与@Resource注解的区别在Spring 3.X中经常使用到@Autowired和@Resource进行装配.这两个注解的差异在何处???相同点:@Reso ...

  2. Spring中@Autowired注解、@Resource注解的区别 (zz)

    Spring中@Autowired注解.@Resource注解的区别 Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@ ...

  3. Spring系列12: `@Value` `@Resource` `@PostConstruct` `@PreDestroy` 详解

    本文内容 @Resource实现依赖注入 @Value详细使用 @PostConstruct @PreDestroy的使用 @Resource实现依赖注入 前面章节介绍了使用@Autowired注入依 ...

  4. Spring中内置的一些工具类

    学习Java的人,或者开发很多项目,都需要使用到Spring 这个框架,这个框架对于java程序员来说.学好spring 就不怕找不到工作.我们时常会写一些工具类,但是有些时候 我们不清楚,我们些的工 ...

  5. 老李分享:持续集成学好jenkins之内置命令

    老李分享:持续集成学好jenkins之内置命令   Jenkins命令调用方式:调用Jenkins命令设置job的描述信息. $JAVA_BIN-jar "$JENKINS_CLI_JAR& ...

  6. zabbix Server 4.0 部署及之内置item使用案例

    zabbix Server 4.0 部署及之内置item使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix组件架构概述(图片摘自网络) 1>.zabbi ...

  7. Spring boot 内置tomcat禁止不安全HTTP方法

    Spring boot 内置tomcat禁止不安全HTTP方法 在tomcat的web.xml中可以配置如下内容,让tomcat禁止不安全的HTTP方法 <security-constraint ...

  8. python设计模式之内置装饰器使用(四)

    前言 python内部有许多内建装饰器,它们都有特别的功能,下面对其归纳一下. 系列文章 python设计模式之单例模式(一) python设计模式之常用创建模式总结(二) python设计模式之装饰 ...

  9. spring利用后置处理器初始化bean属性

    spring利用后置处理器初始化bean属性 参考:http://blog.csdn.net/heyutao007/article/details/50326793 @Configurable @En ...

随机推荐

  1. 将node-expat扩展编译至node.exe中

    1.下载node源代码 https://github.com/joyent/node (v:0.10.25) 2.下载node-expat源代码 https://github.com/node-xmp ...

  2. Winpcap网络编程十之Winpcap实战,两台主机通过中间主机通信

    注:源码等等的我不会全然公开的,此篇文章写出来为大家的网络编程或者课程设计提供一定的思路.. 好,本次我们须要完毕的任务是: 完毕两台主机通过中间主机的数据通信(网络层) 添加基于IP地址的转发功能 ...

  3. WinDbg调试.NET

    WinDbg调试.NET程序入门 俗话说:万事开头难! 自从来到新公司遇到性能问题后,需要想办法解决这个问题,但是一直没有合适的性能分析工具,然后找到StevenChennet 大神帮忙,他用WinD ...

  4. python 基础知识点整理 和详细应用

    Python教程 Python是一种简单易学,功能强大的编程语言.它包含了高效的高级数据结构和简单而有效的方法,面向对象编程.Python优雅的语法,动态类型,以及它天然的解释能力,使其成为理想的语言 ...

  5. zoj2588 Burning Bridges --- 寻求尖端

    #include <iostream> #include <cstring> #include <string> #include <cstdio> # ...

  6. Linux/UNIX先进I/O

    先进I/O 非阻塞IO 非阻塞I/O因此,我们可以称之为open.read和write这种I/O操作,而这些操作不会永久阻止.我们假设,该操作不能完成,然后调用立即返回一个错误.则表示该操作将继续作为 ...

  7. 【剑指offer】数字数组中只出现一次(2)

    转载请注明出处:http://blog.csdn.net/mmc_maodun/article/details/27800577 题目:一个int数组中有三个数字a.b.c仅仅出现一次,其它数字都出现 ...

  8. 易Android登录Demo

    上一页介绍Android项目简单的页面跳转实例,算是对开发环境的熟悉,这一篇将在此基础上增加一些简单的逻辑,实现登录的效果. 登录之前: 登录成功: watermark/2/text/aHR0cDov ...

  9. java基金会成立

    在java在,数据收集的操作,应使用非常.最近看了零星收集的小知识,在这里,一点点排序. 它基本上是四个常用的类操作点总结集合. 首先.集合大致分为两个方向.一种是普通的集合类型,通过接口collec ...

  10. Flex列在一个表格式的数字值

    1.问题背景 一般的.表格中展示的比率.对照率的处理是:保留两位小数,并向上保留 2.实现实例 <? xml version="1.0" encoding="utf ...