Spring之资源操作:Resource接口

05.Spring 资源加载 - Resource 基本概念Spring 的 Resource 接口代表底层外部资源,提供了对底层外部资源的一致性访问接口。利用该接口可以表示不同形式(类型)的资源。 InputStreamSource 接口 public interface InputStreamSource { // 表示任意形式的资源都可以被转换成输入流 InputStream getInputStream() throws IO 阅读详情

在这里插入图片描述


在这里插入图片描述


个人名片:

在这里插入图片描述


🐼作者简介:一名大三在校生,喜欢AI编程🎋
🐻‍❄️个人主页🥇:落798.
🐼个人WeChat:hmmwx53
🕊️系列专栏:🖼️




Spring之资源操作:Resource接口

Resource接口

Spring 的 Resource 接口位于 org.springframework.core.io 中。 旨在成为一个更强大的接口,用于抽象对低级资源的访问。以下显示了Resource接口定义的方法

public interface Resource extends InputStreamSource {

    boolean exists();

    boolean isReadable();

    boolean isOpen();

    boolean isFile();

    URL getURL() throws IOException;

    URI getURI() throws IOException;

    File getFile() throws IOException;

    ReadableByteChannel readableChannel() throws IOException;

    long contentLength() throws IOException;

    long lastModified() throws IOException;

    Resource createRelative(String relativePath) throws IOException;

    String getFilename();

    String getDescription();
}

Resource接口继承了InputStreamSource接口,提供了很多InputStreamSource所没有的方法。InputStreamSource接口,只有一个方法:

public interface InputStreamSource {

    InputStream getInputStream() throws IOException;

}

其中一些重要的方法:

getInputStream(): 找到并打开资源,返回一个InputStream以从资源中读取。预计每次调用都会返回一个新的InputStream(),调用者有责任关闭每个流
exists(): 返回一个布尔值,表明某个资源是否以物理形式存在
isOpen: 返回一个布尔值,指示此资源是否具有开放流的句柄。如果为true,InputStream就不能够多次读取,只能够读取一次并且及时关闭以避免内存泄漏。对于所有常规资源实现,返回false,但是InputStreamResource除外。
getDescription(): 返回资源的描述,用来输出错误的日志。这通常是完全限定的文件名或资源的实际URL。

其他方法:

isReadable(): 表明资源的目录读取是否通过getInputStream()进行读取。
isFile(): 表明这个资源是否代表了一个文件系统的文件。
getURL(): 返回一个URL句柄,如果资源不能够被解析为URL,将抛出IOException
getURI(): 返回一个资源的URI句柄
getFile(): 返回某个文件,如果资源不能够被解析称为绝对路径,将会抛出FileNotFoundException
lastModified(): 资源最后一次修改的时间戳
createRelative(): 创建此资源的相关资源
getFilename(): 资源的文件名是什么 例如:最后一部分的文件名 myfile.txt


写在后面🔥🔥🔥:

林纳斯·托瓦兹(Linus Torvalds)说:“我从心底认为,优秀的程序员与平庸的程序员之间的区别,是在于认为自己的代码重要还是数据结构更加重要。平庸的程序员眼里只有代码,优秀的程序员则关注数据结构及之前的关系。”

《spring技术内幕:深入解析spring架构与计原理(第2版)》是国内一本系统分析spring源代码的经典著作,也是spring领域的问鼎之作,由业界拥有10余年开发经验的资深java专家亲自执笔,java开发者社区和spring开发者社区联袂推荐。本书第1版不仅在内容上获得了读者的广泛好评,而且在销量上也摘取了同类书的桂冠,曾经一度掀起java类图书的销售热潮。第2版不仅继承了第1版在内容组织和写作方式上的优点,而且还根据广大读者的反馈改进了若干细节上的不足。更为重要的是,结合spring的最新版本对过时的内容进行了更新,并增加了大量新内容,使本书更趋近于完美。

本专栏是自己深入学习并结合Spring技术内幕一经典图书内容做出的的心得与总结,将其精简编写成一篇专栏供大家学习,希望对新学习Spring框架技术的小伙伴有所帮助。

图书推荐:
在这里插入图片描述


在这里插入图片描述

欢迎添加微信,加入我的核心小队,请备注来意

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

Spring框架Resource接口详解与最佳实践 在Java开发中,资源访问是基础且关键的技术环节。Spring框架通过Resource接口抽象了各类资源的统一访问方式,解决了传统Java资源访问API的局限性。该接口定义了exists()、getInputStream()等核心方法,并提供了ClassPathResource、FileSystemResource等多种实现,支持类路径、文件系统、URL等不同来源的资源加载。结合ResourceLoader体系,开发者可以实现灵活的资源定位与依赖注入,特别适合处理配置文件、静态资源等场景。通过集成Resou 阅读详情

相关推荐

时序定江山,功耗写风骨——解读时序库lib文件的奥义【芯片设计 lib文件】

lib库,全称liberty library format file:它是Liberty时序文件的简称,使用 Liberty 语法来编写。它可以通过library compiler/dc转换成.db文件(database),供synopsis家的DC和PT使用,也可以通过spyglass的library compiler来生成sglib文件,供spyglass使用。他们是等价的,但db文件是二进制格式,人类不可读。

LogicYarn的博客 2601

010-Spring 资源Resource接口

Resource 接口定义如下 package org.springframework.core.io; import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URL; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; import org.springframework.lan

这个需求,做不了 392

深入解析EDID中Display Descriptor Block的配置技巧与实战应用

本文深入解析EDID中Display Descriptor Block的配置技巧与实战应用。通过剖析像素时钟、有效像素、消隐区与同步脉冲等核心参数,并结合1280x720@60Hz的实战配置案例,指导开发者如何正确为定制硬件或非标准显示器编写“身份证”,避免黑屏、分辨率异常等问题,确保显示设备完美点亮。

1a2s3d4f5g的博客 878

.net framework standard core_【修炼内功】[spring-framework][1]Resource

阅读源码是一件极其枯燥无比的事情,对于使用频率较高的组件,如果能做到知其然且知其所以然,这对日常工作中不论是问题排查、代码优化、功能扩展等都是利大于弊的,如同老司机开车(对,就是开车),会让你有一种参与感,而不仅仅把它当成一种工具,若能习之精髓、学以致用,那便再好不过!从工作之初便开始接触Spring框架,时至今日也没有认真地正视过它的实现细节,今日开拔,希望能够坚持下来~对于Spring如此“庞...

weixin_39637363的博客 161

java结合Ai

Spring AI 是 AI 工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域,并促进使用POJO作为应用程序的构建块到AI领域。特征跨 AI 提供商的可移植 API 支持,适用于聊天、文本到图像和嵌入模型。支持同步 API 和流 API 选项。还支持下拉以访问特定于模型的功能。聊天模型亚马逊基岩人类学Cohere的命令AI21 Labs的侏罗纪-2Meta 的 LLama亚马逊的泰坦人类学克劳德Azure 开放式 AI。

qq_67832732的博客 2846

MySQL安装配置教程(超级详细)

一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是

m0_67322837的博客 5万+

Spring ResourceLoader接口

ResourceLoader接口的主要作用是进行org.springframework.core.io.ResourceLoader对象实例化,这个接口的定义如下: 读取指定的资源信息:public getResource Resource getResource(String location); 取得类加载器:public getClassLoa...

抛弃幻想,准备斗争 538

【EB_Tresos专题】-01-EB Tresos导入工程

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 6431

Java继承与多态在Spring Resource体系中的实战应用

继承和多态是Java面向对象编程的核心概念,通过方法重写和接口实现实现运行时多态性。在工程实践中,这种特性为框架设计提供了强大的扩展能力,Spring Resource体系正是典型案例。该体系通过Resource接口统一抽象各类资源操作,利用多态机制根据实际资源类型动态调用具体实现。理解这种设计模式不仅能提升代码复用性,还能优化资源管理策略。在微服务架构和云原生场景下,合理的继承体系设计可以简化环境适配,而多态的应用则让资源加载逻辑更具弹性。Spring框架中ClassPathResource、FileSy

weixin_30444111的博客 279

【Python基础】FastAPI 从入门到项目实战操作详解

【Python基础】FastAPI从入门到使用实战操作详解

congge_study的博客 425

[QMT量化交易小白入门]-七十三、主力资金动向:板块与个股资金流数据API(量化python代码解析)

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1109

Chapter08 资源操作:Resources 知识点总结Note

Java的标准java.net.URL类和各种URL前缀的标准处理程序无法满足所有对low-level资源的访问,比如:没有标准化的 URL 实现可用于访问需要从类路径或相对于 ServletContext 获取的资源。并且缺少某些Spring所需要的功能,例如检测某资源是否存在等。**而Spring的Resource声明了访问low-level资源的能力该接口实现类的实例可以获得一个Resource实例。该接口实现类的实例将获得一个ResourceLoader的引用。

weixin_54372875的博客 1059

全志F1C100S/F1C200S学习笔记(11)——spi-flash 启动全流程适配烧录及踩坑指南

SPI Flash 系统编译 spi-flash 启动适配 分区规划: 分区序号 分区大小 分区作用 地址空间及分区名 mtd0 1MB (0x100000) spl+uboot 0x0000000-0x0100000 : “uboot” mtd1 64KB (0x10000) dtb文件 0x0100000-0x0110000 : “dtb” mtd2 4MB (0x400000) linux内核 0x0110000-0x0510000 : “kernel” mtd3 剩余 (

丨晋丨 1万+

spring之资源操作:Resources

一、Spring Resources概述二、Resource接口三、Resource的实现类1、UrlResource访问网络资源2、ClassPathResource 访问类路径下资源3、FileSystemResource 访问文件系统资源四、Resource类图五、ResourceLoader 接口1、ResourceLoader 概述2、使用演示3、ResourceLoader 总结六、ResourceLoaderAware 接口。

哥的时代,为你保驾护航 1572

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java 读取xml接口实例_Java-利用Spring提供的Resource接口操作资源文件

背景JDK提供的访问资源的类(如java.net.URL、File等)并不能很好地满足各种底层资源的访问需求,比如缺少从类路径或者Web容器上下文中获取资源的操作类。Spring提供了Resource接口,为应用提供了更强的底层资源访问能力,该接口拥有对应不同资源类型的实现类。资源访问接口主要方法 boolean exists() 资源是否存在boolean isOpen() 资源是否打开URL ...

weixin_36272649的博客 465

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Spring】资源操作管理:Resource、ResourceLoader、ResourceLoaderAware;

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~

ebb29bbe的博客 2253

Spring之资源操作:Resource的实现类

Resource的实现类 Resource 接口是 Spring 资源访问策略的抽象,它本身并不提供任何资源访问实现,具体的资源访问由该接口的实现类完成——每个实现类代表一种资源访问策略。Resource一般包括这些实现类:UrlResource、ClassPathResource、FileSystemResource、ServletContextResource、InputStreamResource、ByteArrayResource

鱼干的博客 3555

spring 之资源操作:Resources

1.接口的实现类可以获取资源的Resource实例。它是用于加载不同类型资源的抽象接口,提供了一种统一的方式来访问各种资源,如文件、类路径资源、URL等。通过,可以轻松地获取和操作应用程序中的资源。2.实现了接口的类实例将获得对的引用。这意味着它们可以在运行时通过来访问资源。这对于将资源加载能力注入到特定的类中非常有用,使它们能够以一种更灵活的方式处理资源。:这个方法用于根据资源位置获取Resource实例。Resource可以表示各种资源,例如文件、URL、类路径资源等。是。

一切总会归于平淡 2492

Spring中Resource(资源)的获取

Spring中获取资源的方式一共有以下四种: 通过Resource接口获取资源 通过ResourceLoader接口获取资源 通过ApplicationContext获取资源 将resource注入到bean中的方式获取资源 下面是对每种方式的详细讲解 :1.通过Resource接口获取资源Resource接口的实现类有: 实现类 说明 ClassPathResource 通过类路径获

解忧杂货铺 1万+

【Spring】开发框架Spring核心技术含Resource接口详细讲解

【Spring】开发框架Spring核心技术含Resource接口详细讲解、认识Spring体系结构、AOP模块、Web模块、测试模块、loc与DI、Spring资源访问神器——Resource接口等

m0_75058342的博客 4523

通过Spring Resource接口获取资源

通过Spring Resource接口获取资源 目录 1       Resource简介 2       通过ResourceLoader获取资源 3       在bean中获取Resource的方式   1       Resource简介        在Spring内部,针对于资源文件有一个统一的接口Resource表示。其主要实现类有ClassPathResource、F

Jerry的博客 9064

Spring Resources资源操作

Spring 的 Resource 接口位于 org.springframework.core.io 中。 旨在成为一个更强大的接口,用于抽象对低级资源的访问。

Lifelong learning 3966

Java-利用Spring提供的Resource/ResourceLoader接口操作资源文件

背景 JDK提供的访问资源的类(如java.net.URL、File等)并不能很好地满足各种底层资源的访问需求,比如缺少从类路径或者Web容器上下文中获取资源的操作类。 Spring提供了Resource接口,为应用提供了更强的底层资源访问能力,该接口拥有对应不同资源类型的实现类。 资源访问接口 主要方法 boolean exists() 资源是否存在 boolean isOpen() 资源是否...

weixin_41490593的博客 1282

Spring Resource文件操作接口

Spring中获取资源的方式一共有以下四种: 通过Resource接口获取资源 通过ResourceLoader接口获取资源 通过ApplicationContext获取资源 将resource注入到bean中的方式获取资源 下面是对每种方式的详细讲解 : 1.通过Resource接口获取资源 Resource接口的实现类有...

大佛拈花的博客 1176

Spring——资源操作

该接口实现类的实例可以获得一个Resource实例。该接口实现类的实例将获得一个ResourceLoader的引用。在ResourceLoader接口里有如下方法:(1): 该接口仅有这个方法,用于返回一个Resource实例。ApplicationContext实现类都实现ResourceLoader接口,因此ApplicationContext可直接获取Resource实例。Spring将采用和ApplicationContext相同的策略来访问资源。

Ling_suu的博客 898

8、资源操作 Resource

Java的标准java.net.URL类和各种URL前缀的类无法满足所有对low-level资源的访问。比如:没有标准化的 URL 实现访问需要从类路径或相对于 ServletContext获取的资源。并且缺少某些Spring所需要的功能,例如检测某资源是否存在等。Spring的Resource声明了访问low-level资源的能力。在Spring框架中,Resource接口是一个抽象接口,用于统一访问各种低级别(low-level)的资源。低级别资源指的是那些需要通过底层I/O操作进行读取和写入的资源。

白羊座的橙子 1165
上一篇: Spring之资源操作:Resource的实现类
下一篇: 【Spring之资源操作】如何实现在项目根路径下创建文件,从文件系统中读取资源
落鱼科技
落鱼科技 2022年度博客新星评选TOP 6 2022年度博客新星评选TOP 6
博客等级 码龄5年 2万+粉丝 413原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落鱼科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值