文档章节

Spring 2 资源

fokYaland
 fokYaland
发布于 2015/06/04 17:27
字数 545
阅读 15
收藏 1
Spring 提供一个Resource接口来统一这些底层资源一致的访问,而且提供了一些便利的接口,从而能提供我们的生产力。

Resource接口代表底层外部资源,提供了对底层外部资源的一致性访问接口
public interface InputStreamSource {
    InputStream getInputStream() throws IOException;
}

public interface   Resource  extends InputStreamSource {
       boolean exists();
       boolean isReadable();
       boolean isOpen();
       URL getURL() throws IOException;
       URI getURI() throws IOException;
       File getFile() throws IOException;
       long contentLength() throws IOException;
       long lastModified() throws IOException;
       Resource createRelative(String relativePath) throws IOException;
       String getFilename();
       String getDescription();
}

内置Resource实现:ByteArrayResource、InputStreamResource 、FileSystemResource 、UrlResource 、ClassPathResource、ServletContextResource、VfsResource等。

ResourceLoader接口,ResourceLoader接口用于返回Resource对象;其实现可以看作是一个生产Resource的工厂类。
目前所有ApplicationContext都实现了ResourceLoader,因此可以使用其来加载资源。

ClassPathXmlApplicationContext:不指定前缀将返回默认的ClassPathResource资源,否则将根据前缀来加载资源;
FileSystemXmlApplicationContext:不指定前缀将返回FileSystemResource,否则将根据前缀来加载资源;
WebApplicationContext:不指定前缀将返回ServletContextResource,否则将根据前缀来加载资源;

Resource template = ctx.getResource( "some/resource/path/myTemplate.txt"  );
Resource template = ctx.getResource( "classpath:some/resource/path/myTemplate.txt"  );
Resource template = ctx.getResource( "file:/some/resource/path/myTemplate.txt"  );
Resource template = ctx.getResource( "http://myhost.com/resource/path/myTemplate.txt"  );

注入Resource,
package cn.javass.spring.chapter4.bean;
import org.springframework.core.io.Resource;
public class ResourceBean3 {
    private   Resource resource;
    public Resource getResource() {
        return resource;
    }
    public void setResource(Resource resource) {
        this.resource = resource;
    }
}
<bean id="resourceBean1" class="cn.javass.spring.chapter4.bean.ResourceBean3">
       <property name="resource" value="cn/javass/spring/chapter4/test1.properties"/>
</bean>
<bean id="resourceBean2" class="cn.javass.spring.chapter4.bean.ResourceBean3">
      <property name="resource"  value="classpath:cn/javass/spring/chapter4/test1.properties"/>
</bean>

Application contexts and Resource paths
ApplicationContext ctx =   new  ClassPathXmlApplicationContext( "conf/appContext.xml");
ApplicationContext ctx =  new  FileSystemXmlApplicationContext( "conf/appContext.xml");
ApplicationContext ctx =   new  ClassPathXmlApplicationContext( new  String[] { "services.xml",   "daos.xml"}, MessengerService.   class  );

路径通配符
?:匹配一个字符,如“config?.xml”将匹配“config1.xml”;
*:匹配零个或多个字符串,如“cn/*/config.xml”将匹配“cn/javass/config.xml”,但不匹配匹配“cn/config.xml”;而“cn/config-*.xml”将匹配“cn/config-dao.xml”;
 **:匹配路径中的零个或多个目录,如“cn/**/config.xml”将匹配“cn /config.xml”,也匹配“cn/javass/spring/config.xml”;而“cn/javass/config-**.xml”将匹配“cn/javass/config-dao.xml”,即把“**”当做两个“*”处理。
Spring在加载类路径资源时除了提供前缀“classpath:”的来支持加载一个Resource,还提供一个前缀   classpath*:来支持加载所有匹配的类路径Resource。

/WEB-INF/*-context.xml
com/mycompany/**/applicationContext.xml
file:C:/some/path/*-context.xml
classpath:com/mycompany/**/applicationContext.xml


本文转载自:http://blog.csdn.net/yanliang1/article/details/10817551

fokYaland
粉丝 4
博文 68
码字总数 3062
作品 0
东城
私信 提问
spring boot框架学习6-spring boot的web开发(2)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定...

中凯_凯哥java
2017/11/06
185
0
spring boot框架学习5-spring boot的web开发(1)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定...

中凯_凯哥java
2017/11/01
501
0
Spring MVC 与主流架构 RESTful 的集成

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/GitChat/article/details/97791177 前言 这一讲来学习 Spring MVC 对...

GitChat技术杂谈
07/30
0
0
Spring Boot和Spring Cloud学习资源推荐

比较好的学习资源,分享一下。 1、Spring Boot官方文档:http://projects.spring.io/spring-boot/ 2、Spring Cloud官方文档:http://projects.spring.io/spring-cloud/ Spring Boot学习地址 ...

懂得-奉献
2017/10/20
272
2
Spring Boot开启的 2 种方式

Spring Boot依赖 使用Spring Boot很简单,先添加基础依赖包,有以下两种方式 1. 继承spring-boot-starter-parent项目 2. 导入spring-boot-dependencies项目依赖 Spring Boot依赖注意点 1. 属...

Java技术栈
2018/06/10
29
0

没有更多内容

加载失败,请刷新页面

加载更多

MVC Linux下开发及部署

linux使用的是 Ubuntu 64 位 18.04.2 LTS 首先复制C:\Program Files (x86)\Embarcadero\Studio\20.0\PAServer 下 LinuxPAServer20.0.tar.gz 到 linux 目录下 运行链接编译程序 delphi环境配置......

苏兴迎
今天
9
0
3.控件及其属性

1.文本 2.按钮

横着走的螃蟹
今天
7
0
安装Genymotion模拟器慢的解决方案

第一步点击下载, C:\Users\Administrator\AppData\Local\Genymobile\genymotion.log 中搜索 ova 会发现这个文件 使用迅雷下载即可. 在 虚拟机中导入这个.ova 文件 即可安装...

chenhongjiang
今天
5
0
4. 彤哥说netty系列之Java NIO实现群聊(自己跟自己聊上瘾了)

你好,我是彤哥,本篇是netty系列的第四篇。 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。 简介 上一章我们一起学习了Java中的BIO/NIO/AIO的故事,本章将带着大家一起使用纯纯的N...

彤哥读源码
今天
7
0
如何把握好面试的最后一问 ?

如何把握好面试的最后一问 ? 你有没有听过这句话 “ 你还有什么问题想问我的吗? ” 如何把握好面试的最后一问 ? 要积极稳妥,切莫减分、丢分、扣分。比如,你提问的问题很傻很天真,比如你提...

编程三分钟
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部