当前位置: 首页 > news >正文

Spring中的资源以及分类

Spring中的资源都被封装成 Resource 对象

 以上是我测试代码的项目编译后的目录结构,target 所在的目录是 

D:\\IdeaProjects\\study-spring\\
public void printStream(InputStream inputStream) throws IOException {Reader reader = new InputStreamReader(inputStream);BufferedReader bufferedReader = new BufferedReader(reader);String line = null;while ( (line = bufferedReader.readLine()) != null) {System.out.println(line);}
}

1.ClassPathResource 

ClassPathResource 是以classes目录为根目录进行查找,开头可以带 / 也可以不带

@Test
public void classPathResource() throws IOException {Resource resource = new ClassPathResource("com/fll/start/resource_loader/InputResourceTest.class");InputStream inputStream = resource.getInputStream();printStream(inputStream);
}

 读取到了InputResourceTest.class的内容

@Test
public void classPathResource1() throws IOException {Resource resource = new ClassPathResource("beans.xml");InputStream inputStream = resource.getInputStream();printStream(inputStream);
}

 读取到了beans.xml的内容

2. FileSystemResource

FileSystemResource 是根据资源在磁盘上的绝对路劲进行加载的

@Test
public void fileSystemResource() throws IOException {Resource resource = new FileSystemResource("D:\\IdeaProjects\\study-spring\\target\\classes\\beans.xml");InputStream inputStream = resource.getInputStream();printStream(inputStream);
}

 成功加载到了beans.xml

 3.PathResource

 PathResource 和 FileSystemResource 有点类似可以按照磁盘绝对路劲加载资源,不同的是,PathResource是可以支持按照相对路径加载资源
按照绝对路径进行加载

@Test
public void pathResource() throws IOException {PathResource pathResource = new PathResource("D:\\IdeaProjects\\study-spring\\target\\classes\\com/fll/start/resource_loader/InputResourceTest.class");InputStream inputStream = pathResource.getInputStream();printStream(inputStream);
}

按照相对路劲进行加载

@Test
public void relativePathResource() throws IOException {PathResource pathResource = new PathResource("D:/IdeaProjects/study-spring/target/classes/com/fll/start/resource_loader/InputResourceTest.class");Resource relative = pathResource.createRelative("../DefaultResourceLoaderTest.class");InputStream inputStream = relative.getInputStream();printStream(inputStream);
}
@Test
public void relativePathResource1() throws IOException {PathResource pathResource = new PathResource("D:/IdeaProjects/study-spring/target/classes/com/fll/start/resource_loader/InputResourceTest.class");Resource relative = pathResource.createRelative("../../../../../beans.xml");InputStream inputStream = relative.getInputStream();printStream(inputStream);
}

都可以成功的加载到对应的资源

4.UrlResource

 UrlResource 可以用来加载 网络上的相关资源

@Test
public void urlResource() throws IOException {Resource resource = new UrlResource("https://www.baidu.com");InputStream inputStream = resource.getInputStream();printStream(inputStream);}

http://www.lryc.cn/news/475751.html

相关文章:

  • 初步认识Java,及使用
  • C,C++被static标记的变量和函数分别是什么意思
  • Map 不常用方法介绍
  • 论文翻译:ICLR 2024.DETECTING PRETRAINING DATA FROM LARGE LANGUAGE MODELS
  • Spring 框架精髓:从基础到分布式架构的进阶之路
  • 深入理解C++ Lambda表达式:语法、用法与原理及其包装器的使用
  • C# 编程语言:跨时代的革命
  • 恋爱脑学Rust之Box与RC的对比
  • Rust 力扣 - 1423. 可获得的最大点数
  • Android15音频进阶之Cuttlefish搭建音频开发环境(九十二)
  • 发现不为人知的AI宝藏:发现AI新天地! —— 《第八期》
  • 基于物联网设计的地下煤矿安全监测与预警
  • Java 23 的12 个新特性!!
  • .NET 8 中 Entity Framework Core 的使用
  • ai数字人分身123口播克隆数字人小程序源码_博纳软云
  • 从0开始学PHP面向对象内容之(类,对象,构造/析构函数)
  • openGauss数据库-头歌实验1-5 修改数据库
  • 《JVM第3课》运行时数据区
  • 阅读笔记 Contemporary strategy analysis Chapter 14
  • 2024网鼎杯青龙组wp:Crypto2
  • 能通过Ping命令访问CentOS 9 Stream,但在使用Xshell连接
  • Oracle 第19章:高级查询技术
  • Excel:vba运行时错误“7“:内存溢出错误
  • 【MyBatis源码】BoundSql分析
  • KTHREAD--InitialStack和KernelStack和TSS的esp0
  • Skia基础运用(Ubuntu环境下使用BUILD.gn)
  • Vue中props和data的优先级哪个更高?
  • springboot2.x使用SSE方式代理或者转发其他流式接口
  • consul入门教程
  • 软考:大数据架构设计