Spring Resource之内置的Resource实现
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实现的更多相关文章
- Spring中 @Autowired注解与@Resource注解的区别
Spring中 @Autowired注解与@Resource注解的区别在Spring 3.X中经常使用到@Autowired和@Resource进行装配.这两个注解的差异在何处???相同点:@Reso ...
- Spring中@Autowired注解、@Resource注解的区别 (zz)
Spring中@Autowired注解.@Resource注解的区别 Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@ ...
- Spring系列12: `@Value` `@Resource` `@PostConstruct` `@PreDestroy` 详解
本文内容 @Resource实现依赖注入 @Value详细使用 @PostConstruct @PreDestroy的使用 @Resource实现依赖注入 前面章节介绍了使用@Autowired注入依 ...
- Spring中内置的一些工具类
学习Java的人,或者开发很多项目,都需要使用到Spring 这个框架,这个框架对于java程序员来说.学好spring 就不怕找不到工作.我们时常会写一些工具类,但是有些时候 我们不清楚,我们些的工 ...
- 老李分享:持续集成学好jenkins之内置命令
老李分享:持续集成学好jenkins之内置命令 Jenkins命令调用方式:调用Jenkins命令设置job的描述信息. $JAVA_BIN-jar "$JENKINS_CLI_JAR& ...
- zabbix Server 4.0 部署及之内置item使用案例
zabbix Server 4.0 部署及之内置item使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix组件架构概述(图片摘自网络) 1>.zabbi ...
- Spring boot 内置tomcat禁止不安全HTTP方法
Spring boot 内置tomcat禁止不安全HTTP方法 在tomcat的web.xml中可以配置如下内容,让tomcat禁止不安全的HTTP方法 <security-constraint ...
- python设计模式之内置装饰器使用(四)
前言 python内部有许多内建装饰器,它们都有特别的功能,下面对其归纳一下. 系列文章 python设计模式之单例模式(一) python设计模式之常用创建模式总结(二) python设计模式之装饰 ...
- spring利用后置处理器初始化bean属性
spring利用后置处理器初始化bean属性 参考:http://blog.csdn.net/heyutao007/article/details/50326793 @Configurable @En ...
随机推荐
- ext3文件系统反删除利器ext3grep应用实战
推荐:10年技术力作:<高性能Linuxserver构建实战Ⅱ>全网发行,附试读章节和全书实例源代码下载! 一."rm –rf"带来的困惑 国外一份非常著名的Linux ...
- C——联合体(共同体)总结
联合体的特点 1.联合体是一种结构,在这个结构中能够不同类型的成员,但同一时间仅仅能存放当中的一种. #include <stdio.h> union Demo { int a; char ...
- Sizzle.selectors.relative [ 源代码分析 ]
1 jQuery 对象Sizzle.selectors.relative中存放了块间关系符和相应的块间关系过滤函数,称为"块间关系过滤函数集" 块间关系符共同拥有4种,其含义和过滤 ...
- Codeforces Round #254 (Div. 2):A. DZY Loves Chessboard
A. DZY Loves Chessboard time limit per test 1 second memory limit per test 256 megabytes input stand ...
- Properties类读写.properties配置文件
package com.hzk.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFo ...
- 每天收获一点点------Hadoop概述
一.Hadoop来历 Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明了倒排索引算法,通过加入了Map ...
- SQL_sql的简单查询
***********************************************声明*************************************************** ...
- Caused by: Unable to locate parent package [json-package] for [class com.you.action.ColumnAction] -
1.错误叙述性说明 三月 15, 2015 7:53:25 下午 com.opensymphony.xwork2.util.logging.jdk.JdkLogger error 严重: Dispat ...
- 采用xshell链路本地虚拟机Linux
昨天想安装在自己的机器看Linux.而使用xshell通路.但是这花了很长的时间,于xshell结束所有的提示"Could not connect to '192.168.54.100' ( ...
- Mule ESB-Content-Based Routing Tutorial(2)
承接 Mule ESB-Content-Based Routing Tutorial(1) 五.执行应用程序 完毕创建,配置.并保存你的新的应用程序,您就能够在嵌入Mule的server上执行(包含 ...