Spring 框架文档之核心技术—— Resource
Resource
Resource 接口定义
public interface Resource extends InputStreamSource { /** * 返回此资源的 URL 句柄 */ URL getURL() throws IOException; /** * 返回此资源的 URI 句柄 */ URI getURI() throws IOException; /** * 返回此资源的 File 句柄 */ File getFile() throws IOException; /** * 创建此资源的关联资源 */ Resource createRelative(String relativePath) throws IOException; } public interface InputStreamSource { /** * 返回底层资源内容的 InputStream */ InputStream getInputStream() throws IOException; }
内置 Resource 实现者
- UrlResource —— 封装 java.net.URL,用于访问通过URL访问的任何对象,例如
file:
、http:
、ftp:
等 - ClassPathResource —— 使用线程上下文类加载器、给定的类加载器或给定的类从类路径加载资源。如
classpath:
- FileSystemResource —— 从文件系统加载资源
- ServletContextResource —— 从 Web 应用根目录的相对路径中加载资源,支持 URL、流、File(资源位于文件系统)访问
- InputStreamResource —— 在没有特定的资源实现时使用
- ByteArrayResource —— 从任何给定的字节数组加载资源
ResourceLoader
- 返回资源类型确认
//对于 ClassPathXmlApplicationContext, 返回 ClassPathResource //对于 FileSystemXmlApplicationContext, 返回 FileSystemResource //对于 WebApplicationContext, 返回 ServletContextResource Resource template = ctx.getResource("some/resource/path/myTemplate.txt"); //指定 classpath:,返回 ClassPathResource Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt"); //指定 file:、http:,返回 UrlResource Resource template = ctx.getResource("file:///some/resource/path/myTemplate.txt"); Resource template = ctx.getResource("https://myhost.com/resource/path/myTemplate.txt");
与 ApplicationContext 协作
ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/appContext.xml"); //注意:FileSystemXmlApplicationContext 强制将 FileSystemResource 路径当作相对路径 ApplicationContext ctx = new FileSystemXmlApplicationContext("conf/appContext.xml"); //如要使用绝对路径,推荐使用 file: 形式的 UrlResource ApplicationContext ctx = new FileSystemXmlApplicationContext("file:///conf/context.xml");
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Flink实战(四) - DataSet API编程
1 你将学到 ◆ DataSet API开发概述 ◆ 计数器 ◆ DataSource ◆ 分布式缓存 ◆ Transformation ◆ Sink 2 Data Set API 简介 Flink中的DataSet程序是实现数据集转换(例如,过滤,映射,连接,分组)的常规程序. 最初从某些Source源创建数据集(例如,通过读取文件或从本地集合创建) 结果通过sink返回,接收器可以例如将数据写入(分布式)文件或标准输出(例如命令行终端) Flink程序可以在各种环境中运行,单机运行或嵌入其他程序中 执行可以在本地JVM中执行,也可以在集群机器上执行. 有关Flink API基本概念的介绍,请参阅本系列的上一篇 Flink实战(三) - 编程模型及核心概念 为了创建自己的Flink DataSet程序,鼓励从Flink程序的解剖开始,逐步添加自己的转换! 3
- 下一篇
【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的
【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的前言书写此篇博文的缘由是出自一道面试题:面试题目大概如标题所述。我个人认为这道面试题问得是非常有水平的,因为它涉及到的知识点既有深度,又有广度,可谓一举两得~~~因此在这里分享给大家。 为了给此文做铺垫,前面已经有两篇文章分别叙述了Java内省和BeanWrapper,而且还分析了底层接口:属性访问器(PropertyAccessor)。若对此部分还不是很了解的话,建议可以先出门左拐或者单击【相关阅读】里的链接~ Spring IoC和Java内省的依赖关系说明Spring需要依赖注入就需要使用BeanWrapper,上章节说了BeanWrapperImpl的实现大都委托给了CachedIntrospectionResults去完成,而CachedIntrospectionResults它的核心说法就是Java内省机制。 从层层委托的依赖关系可以看出,Spring IoC的依赖注入(给属性赋值)是层层委托的最终给了Java内省机制,这是Spring框架设计精妙处之一。这也符...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题