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

news2025/2/27 2:56:34

学无止境,气有浩然!

新开通公众号,欢迎大家关注,后续会持续分享技术和相关资料
在这里插入图片描述

文章目录

  • 前言
  • 方案
    • 1.getResourceAsStream
    • 2.ResourceLoader
    • 3.@Value配合Resource
  • 打完收工!


前言

最近项目需要下载一个模板文件用来修改上传,模板文件放在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())
	//...
}


打完收工!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1585389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

32.768khz晶振时间跑不准有偏差的原因

32.768kHz晶振是一种常见的晶振频率,广泛应用于实时钟电路、计时电路和低功耗设备中。然而,有时候会发现32.768kHz晶振的时间跑不准,存在一定的偏差。JF晶发电子将介绍几个可能导致32.768kHz晶振时间跑不准的原因。 1. 温度变化:…

vue3页面导出为PDF文件

vue3页面导出为PDF文件 尝试了很多方法,都没有找到完美的解决方法 目前网上有个思路,就是将页面先转存为图片,然后将图片另存为PDF文件 记录一下完整过程 一、安装必备包 安装两个第三方插件 npm i html2canvas npm i jspdfhtml2canvas…

八股面试——数据库——索引

索引的概念 B树的概念: 索引的作用 聚簇索引与非聚簇索引 聚簇索引就是主键值,在B树上,通过主键大小(数据在B树叶子节点按主键顺序排序)寻找对应的叶子节点,叶子节点保存的一整条记录。 非聚簇索引&#x…

【vim 学习系列文章 22 -- vim 实现 linux 多行快速标准注释】

文章目录 vim 实现 linux 多行快速标准注释 vim 实现 linux 多行快速标准注释 不多说了&#xff0c;直接上动图&#xff1a; 上代码&#xff1a; function! CommentBlock()" 获取Visual模式选中的起始和结束行号let old_start_line line("<")let old_end…

项目4-图书管理系统2+统一功能处理

1. 拦截器&#xff08;Interceptor&#xff09; 我们完成了强制登录的功能, 后端程序根据Session来判断用户是否登录, 但是实现⽅法是比较麻烦的。 所需要处理的内容&#xff1a; • 需要修改每个接⼝的处理逻辑 • 需要修改每个接⼝的返回结果 • 接⼝定义修改, 前端代码也需…

vue简单使用一(vue的声明)

首先引入vue的js文件&#xff1a; <script src"js/vue.js" type"application/javascript"></script> vue.js文件去vue官网下载即可 html代码 <div class"vuePro"><div> vue的属性信息都得放在这个标签下面哪怕是同级也是…

轻松玩转TikTok:TK防关联引流系统实现一键式多账号管理

TK防关联引流系统是为TikTok平台量身打造的全方位引流解决方案&#xff0c;不仅解决了传统跨境电商在TikTok运营中遇到的诸多难题&#xff0c;还通过创新技术实现了自动化、高效化的全球引流。以下是该系统的主要优势及功能特点&#xff1a; 系统核心优势 1.全球真实环境模拟…

论文| Convolutional Neural Network-based Place Recognition - 2014

2014-Convolutional Neural Network-based Place Recognition

推荐!6个实用工具类微信小程序,提升效率的神器,工作生活中一定用得到!

亲爱的时间管理小能手们&#xff0c;你们是否经常感叹一天24小时不够用&#xff1f;是不是也经历过在杂乱无章的app海洋中寻找那一个刚好满足需求的小众工具&#xff1f;别急&#xff0c;今天我要给你揭秘六款实用到哭的小程序神器&#xff0c;它们就像你口袋里的多功能瑞士军刀…

Qt——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。QCustomPlot可以导出…

Hackthebox IClean

靶机信息IP/难度Medium网址https://app.hackthebox.com/machines/IClean状态Active系统Linux Python XSS, SSTI 端口扫描 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 256 2cf9077…

48V转15V,48V转12V,48V转24V高效率降压恒压芯片SL3041电路简单

在现代电子设备中&#xff0c;电源转换是一个关键且常见的技术。特别是对于那些需要将48V电压转换为更低电压&#xff08;如15V、12V或24V&#xff09;的设备&#xff0c;一个高效、可靠的降压恒压芯片至关重要。本文将详细介绍一款名为SL3041的高效率降压恒压芯片&#xff0c;…

Ant Design Vue 表单验证手机号的正则

代码&#xff1a; pattern: /^1[3456789]\d{9}$/ 1. <a-form-item label"原手机号" v-bind"validateInfos.contactTel"><a-inputstyle"width: 600px"allow-clear:maxlength"20"placeholder"请输入原手机号"v-mo…

JavaWeb中的Servlet是什么?怎么使用?

文章目录 一、什么是Servlet二、Servlet的基本内容1、Servlet的作用2、Servlet接口3、Servlet接口实现类4、Servlet接口实现类开发步骤5、Servlet对象生命周期6、HttpServletResquest接口7、HttpServletResponse接口8、请求对象和响应对象流程图9、请求对象和响应对象生命周期1…

centos7部署zabbix6.4.9

文章目录 [toc]一、环境准备1&#xff09;部署lnmp2&#xff09;修改配置文件3&#xff09;安装数据库 二、部署zabbix1&#xff09;下载zabbix2&#xff09;安装zabbix服务端3&#xff09;修改配置4&#xff09;开机启动5&#xff09;安装客户端 三、登录配置1&#xff09;访问…

面试算法-170-二叉树的最大深度

题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 解 class Solution {public int maxDepth(TreeNod…

C语言 | Leetcode C语言题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; int comp(const void *a, const void *b) { return *(int *)a - *(int *)b; } int threeSumClosest(int *nums, int numsSize, int target) {int n numsSize;qsort(nums, n, sizeof(int), comp);int best 1e7;// 根据差值的绝对值来更新答…

常见安全漏洞及其解决方案

1、 SQL注入漏洞 漏洞描述&#xff1a; SQL注入被广泛用于非法入侵网站服务器&#xff0c;获取网站控制权。它是应用层上的一种安全漏洞。通常在设计存在缺陷的程序中&#xff0c;对用户输入的数据没有做好过滤&#xff0c;导致恶意用户可以构造一些SQL语句让服务器去执行&…

2024第十九届中国(温州)机械装备展9月20-22日举行

第十九届中国&#xff08;温州&#xff09;机械装备展览会 THE 19TH CHINA (WENZHOU) MACHINERY EQUIPENT EXHIBITION 第十九届中国&#xff08;温州&#xff09;国际紧固件博览会 THE 19TH CHINA (WENZHOU) NTERNATIONAL FASTENER EXPOSITION 时间&#xff1a;2024年9月…

APP软件的运营方法

APP软件的运营是一个复杂的过程&#xff0c;涉及到多个方面的策略和方法。以下是一些有效的APP运营方法&#xff0c;通过这些方法&#xff0c;APP运营者可以有效地吸引和留住用户&#xff0c;提高用户活跃度和忠诚度&#xff0c;最终实现商业成功。北京木奇移动技术有限公司&am…