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

SpringBoot构建成jar包,读取不到resources目录下文件问题

SpringBoot项目构建成jar运行后,如何正确读取resource下的文件

项目中使用poi根据模板导出excel功能,模板路径全部放在resource目录下面的templates中,目录结构如下图:

本地开发环境测试正常,获取模板路径工具类如下:

public class TemplateFileUtil {public static FileInputStream getTemplates(String tempName) throws IOException {return new FileInputStream(new ClassPathResource("templates/" + tempName).getFile());}
}

生成环境事故,执行导出,找不到模板,修改获取模板路径工具类如下:

public class TemplateFileUtil {public static FileInputStream getTemplates(String tempName) throws IOException {ClassPathResource classPathResource = new ClassPathResource("templates/" + tempName);InputStream inputStream = classPathResource.getInputStream();// 生成目标文件File targetFile = File.createTempFile("template_export_copy", ".xls");try {FileUtils.copyInputStreamToFile(inputStream, targetFile);} finally {IOUtils.closeQuietly(inputStream);}return new FileInputStream(targetFile);}
}

至此,导出功能正常。此解决方案参考资料如下:
原文地址:https://blog.csdn.net/hero272285642/article/details/85119778

相关文章:

  • 论文阅读——变化检测
  • Antd Procomponent 之 proForm - 高级表单
  • 【uniapp】签名组件,兼容vue2vue3
  • 数据库常见面试题 —— 12. SQL 如何优化才能解决数据倾斜类问题
  • Go语言用Colly库编写的图像爬虫程序
  • 【多媒体文件格式】AAC
  • c面向对象编码风格(上)
  • ebay、虾皮、Lazada、poshmark等跨境本土店群多账号如何做防关联
  • 音乐免费下载mp3格式+音频格式转换+剪辑音频+合并音频教程
  • PyCharm 无法登陆 Codeium 的解决方法
  • 实用篇-Git
  • 22款奔驰GLE450升级23P驾驶辅助 智能L2领航
  • 增强swagger
  • 记一次 Android 周期性句柄泄漏的排查
  • pytest中的pytest.ini
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 03Go 类型总结
  • EOS是什么
  • Java IO学习笔记一
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript新鲜事·第5期
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Linux中的硬链接与软链接
  • Lucene解析 - 基本概念
  • PHP面试之三:MySQL数据库
  • 二维平面内的碰撞检测【一】
  • 汉诺塔算法
  • 机器学习学习笔记一
  • 精彩代码 vue.js
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 移动端 h5开发相关内容总结(三)
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (十) 初识 Docker file
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四)Linux Shell编程——输入输出重定向
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)scrum常见工具列表
  • .apk文件,IIS不支持下载解决
  • .htaccess 强制https 单独排除某个目录
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net core 依赖注入的基本用发
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET应用架构设计:原则、模式与实践 目录预览
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解