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 ...
随机推荐
- 模拟Vue之数据驱动3
一.前言 在"模拟Vue之数据驱动2"中,我们实现了个Observer构造函数,通过它可以达到监听已有数据data中的所有属性. 但,倘若我们想在某个对象中,新增某个属性呢? 如下 ...
- RandomAccessFile实时读取大文件(转)
最近有一个银行数据漂白系统,要求操作人员在页面调用远端Linux服务器的shell,并将shell输出的信息保存到一个日志文件,前台页面要实时显示日志文件的内容.这个问题难点在于如何判断哪些数据是新增 ...
- springmvc 接收对象 滴灌摘要
js 对象 该阵列看起来像 我明白http://blog.csdn.net/baicp3/article/details/12752255本文 我们指示样品棒 data3一个js对象.遗嘱java当代 ...
- HDU2451:Simple Addition Expression
Problem Description A luxury yacht with 100 passengers on board is sailing on the sea in the twiligh ...
- hive建表没使用LZO存储格式,可是数据是LZO格式时遇到的问题
今天微博大数据平台发邮件来说.他们有一个hql执行失败.可是从gateway上面的日志看不出来是什么原因导致的,我帮忙看了一下.最后找到了问题的解决办法,下面是分析过程: 1.执行失败的hql: IN ...
- crmsql句子的实体关系实体字段的信息窗口
在crm里面怎样用sql语句查询这些信息? 查询实体信息: --查询实体信息,实体名称:account select * from MetadataSchema.Entity where name= ...
- MySQL SQL分析(SQL profile)
分析SQL优化运营开销SQL的重要手段.在MySQL数据库.可配置profiling参数启用SQL分析.此参数可以在全局和session水平集.级别则作用于整个MySQL实例,而session级别紧影 ...
- MFC属性页对话框
属性页对话框 分类 分页和引导 类 CPropertyPage-父亲CDialog类别,所谓的属性页或网页对话框. CPropertySheet-父类是CWnd,称为属性表单. 一个完整的属性页对话框 ...
- 使用nodeitk进行对象识别
前言 东莞,晴,29至27度.忙了一天,最终能够写写东西了.今天继续昨天的话题,我们在昨天的例了基础上完好,通过匹配关键点求出映射从而找到场景中的已知对象. 目标 本文你将学习 採用nodeitk的f ...
- Android 滑动界面实现---Scroller类别 从源代码和开发文档了解(让你的移动布局)
在android学习,行动互动是软件的重要组成部分,其中Scroller是提供了拖动效果的类,在网上.比方说一些Launcher实现滑屏都能够通过这个类去实现.. 样例相关博文:Android 仿 窗 ...