1. 首页
  2. 软件开发
  3. JAVA
  4. Spring Boot项目获取resources目录下的文件并返回给前端

Spring Boot项目获取resources目录下的文件并返回给前端

  • 发布于 2024-08-14
  • 0 次阅读

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

学无止境,气有浩然!

新开通公众号,欢迎大家关注,后续会持续分享技术和相关资料

文章目录

前言

最近项目需要下载一个模板文件用来修改上传,模板文件放在Spring Boot项目中resources文件夹下。功能就是获取这个文件然后下载。解决的主要问题就是因为打出来是一个jar包,运行的时候就是相当于从jar包里面的目录获取这个文件。

方案

其实总共有三种方式。

1.getResourceAsStream

这个是Class对象的方法,利用类加载器查找。

InputStream input = getClass().getResourceAsStream("/template/template.xlsx");

2.ResourceLoader

这是Spring Boot提供的解析类,通过解析获取org.springframework.core.io.Resource对象,可以通过添加classpath:拿到resources具体文件。

@Autowired
private ResourceLoader resourceLoader;
public void test() {
	Resource resource = resourceLoader.getResource("classpath:/template/template.xlsx");
	Files.readAllBytes(Paths.get(resource.getURI())
	//...
}

3.@Value 配合 Resource

这个是目前使用的方式,其实跟第 2 种差不多,就是拿到Resource 解析

@Value("classpath:/template/template.xlsx")
private Resource template;
public void test() {
	Files.readAllBytes(Paths.get(template.getURI())
	//...
}

打完收工!