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 ...
随机推荐
- net开源cms系统
.net开源cms系统推荐 内容目录: 提起开源cms,大家第一想到的是php的cms,因为php开源的最早,也最为用户和站长们认可,随着各大cms系统的功能的不断完善和各式各样的开源cms的出现,. ...
- [Python]sqlite3二进制文件存储问题(BLOB)(You must not use 8-bit bytestrings unless you use a text_factory...)
事情是这种: 博主尝试用Python的sqlite3数据库存放加密后的usernamepassword信息,表是这种 CREATE TABLE IF NOT EXISTS user ( userID ...
- Cloudera impala简单介绍及安装具体解释
一.Impala简单介绍 Cloudera Impala对你存储在Apache Hadoop在HDFS,HBase的数据提供直接查询互动的SQL.除了像Hive使用同样的统一存储平台,Impala也使 ...
- 分布式中使用Redis实现Session共享(转)
上一篇介绍了如何使用nginx+iis部署一个简单的分布式系统,文章结尾留下了几个问题,其中一个是"如何解决多站点下Session共享".这篇文章将会介绍如何使用Redis,下一篇 ...
- OpenGL缓冲区
OpenGL缓冲区 颜色缓冲区 OpenGL时,先是在一个缓冲区中完毕渲染,然后再把渲染结果交换到屏幕上. 我们把这两个缓冲区称为前颜色缓冲区(屏幕)和后颜色缓冲区.在默认情况下,OpenGL命令是在 ...
- Oracle压缩总结2—
估计表压缩效应
使用压缩前,我们可以估算压缩能有多大效果. 11gr2我已经能够使用dbms_comp_advisor,具体代码见附件.只需要运行两个文件dbmscomp.sql和prvtcomp.plb.然后使用D ...
- ASP.NET MVC应用程序展示RDLC报表
原文:ASP.NET MVC应用程序展示RDLC报表 学习ASP.NET MVC这样久,在学习,练习与应用过程中,觉得很多知识与以前的ASP.NET多有区别,但是实现操作起来,细处又有许多相近的地方. ...
- 编写WCF服务时右击配置文件无“Edit WCF Configuration”(编辑 WCF 配置)远程的解决办法
原文:编写WCF服务时右击配置文件无“Edit WCF Configuration”远程的解决办法 今天在看<WCF揭秘>书中看到作者提出可以在一个WCF Host应用程序的App.Con ...
- listener.ora中PLSExtPro 和ExtProc的作用(转)
默认安装时,会安装一个PL/SQL外部程序(ExtProc)条目在listener.ora中,是oracle为调用外部程序默认配置的监听,它的名字通常是ExtProc或PLSExtProc,但一般不会 ...
- VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线
VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线 Visual Studio Visual Studio 2015 下载 VS2015新功能列表 ‘ Visual ...