8 -- 深入使用Spring -- 3... 资源访问
8.3 资源访问
Spring 为资源访问提供了一个Resource接口,Spring框架本身大量使用了Resource来访问底层资源。
Resource 本身是一个接口,是具体资源访问策略的抽象,也是所有资源访问类所实现的接口。
Resource接口主要提供了如下几个方法:
⊙ getInputStream() :定位并打开资源,返回资源对应的输入流。每次调用都返回新的输入流。调用者必须负责关闭输入流。
⊙ exists() : 返回Resource所指向的资源是否存在。
⊙ isOpen() : 返回资源文件是否打开,如果资源文件不能多次读取,每次读取结束时应该显示关闭,以防止资源泄漏。
⊙ getDescription() : 返回资源的描述信息,用于资源处理出错时输入该信息,通常是全限定文件名或实际URL。
⊙ getFile() : 返回资源对应的File对象。
⊙ getURL() : 返回资源对应的URL对象。
Resource接口本身没有提供访问任何底层资源的实现逻辑,针对不同的底层资源,Spring将会提供不同的Resource实现类,不同的实现类负责不同的资源访问逻辑。
8 -- 深入使用Spring -- 3... 资源访问的更多相关文章
- Spring源码分析——资源访问利器Resource之实现类分析
		
今天来分析Spring的资源接口Resource的各个实现类.关于它的接口和抽象类,参见上一篇博文——Spring源码分析——资源访问利器Resource之接口和抽象类分析 一.文件系统资源 File ...
 - Spring资源访问
		
资源访问 1.Resource Jdk提供的访问资源的类并不能很好地满足各种底层的资源访问需求, 比如缺少从类路径或者web容器的上下文中获取资源的操作类. 鉴于此, Spring设计了一个Resou ...
 - spring mvc官网下最新jar搭建框架-静态资源访问处理-注解-自动扫描
		
1.从官网下载spring相关jar http://spring.io/projects 点击SPRING FRAMEWORK
 - Spring MVC 使用介绍(十一)—— 跨域与静态资源访问
		
一.跨域 服务端须在响应中添加相应响应头,从而允许跨域,具体可通过 public class CorsFilter extends OncePerRequestFilter { @Override p ...
 - Spring Boot 静态资源访问原理解析
		
一.前言 springboot配置静态资源方式是多种多样,接下来我会介绍其中几种方式,并解析一下其中的原理. 二.使用properties属性进行配置 应该说 spring.mvc.static-pa ...
 - spring资源访问接口和资源加载接口
		
spring 资源访问接口 JDK提供的资源访问类,如java.net.URL.File等,不能很好地满足各种资源的访问需求,比如缺少从类路径或者Web容器的上下文中获取资源的操作类. 鉴于此,spr ...
 - spring 资源访问
		
spring 资源访问 Resource resource=null; //访问网络资源 resource=new UrlResource("file:bool.xml"); // ...
 - 7.Spring MVC静态资源访问
		
在SpringMVC中常用的就是Controller与View.但是我们常常会需要访问静态资源,如html,js,css,image等. 默认的访问的URL都会被DispatcherServlet所拦 ...
 - Spring中无法访问resources目录下页面或静态资源
		
1.新建项目,在 resources 目录下创建 views 目录,在 views 目录下创建 index.html 页面,项目跑起来,浏览器访问页面,提示找不到页面之类的错误提示. 2.再尝试访问图 ...
 
随机推荐
- TiKV 源码解析系列——如何使用 Raft
			
本系列文章主要面向 TiKV 社区开发者,重点介绍 TiKV 的系统架构,源码结构,流程解析.目的是使得开发者阅读之后,能对 TiKV 项目有一个初步了解,更好的参与进入 TiKV 的开发中. 需要注 ...
 - Vue 获取自定义属性的值
			
在jquery中,如果要获取 data-*** 的值可以通过 $('目标元素').data('属性名') 来获取. 在Vue中如何获取该值呢? 1.换个思路,作为参数传递. 如下代码: <but ...
 - 百度Ueditor设置图片自动压缩
			
使用百度Ueditor插入图片的时候,如果图片大于你的编辑框宽度,下面会出现滚动条,如下图: 我们如何设置它的最大宽度为100%呢? 找到ueditor\ueditor.config.js,修改它的i ...
 - loadrunner 性能测试报error-27796的解决
			
网上观点: 在注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值:TcpTimedWai ...
 - ASP.NET MVC5使用AjaxHelp
			
默认情况下,Visual Studio 2013新建ASP.NET MVC5项目,不包含jquery.unobtrusive-ajax.js,需要手工添加. 点击Visual Studio 2013中 ...
 - this小案例
			
public class Son extends Parent { public String name="jack"; public void init(){ super.ini ...
 - grub的boot loader安装在磁盘上的位置
			
在很多资料上介绍grub的引导过程时,都是:bios->MBR->boot loaderboot loader是grub或者lilo.但是他是放在什么位置?很多资料上都没有标明. 通过阅读 ...
 - ACTIVE NEURAL LOCALIZATION
			
用贝叶斯滤波器定义状态,用rl帮助定位. 这个方法需要对地图和角度进行离散化,当地图很大,角度较精细时,输出会很大,所以不太可能用到大地图,高精度角度的任务上.
 - hibernate+spring整合增删改事务错误
			
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read ...
 - e836. 设置JTabbedPane中卡片的提示语
			
There are two ways to set a tool tip on a tab. The first is to specify it when the tab is created; t ...