Springboot项目读取Jar包中resource目录下文件
今天遇到一个坑就是Springboot读取项目中Resource目录下的一个config.properties文件,最开始在eclipse中调试时读取没有任何问题,但用maven打成jar包运行后报错:
java.io.IOException: Stream closed
原代码如下:
new BufferedInputStream(ClassLoader.getSystemResourceAsStream("config.properties"))//本地是可以的,但是打包成jar包之后
InputStream is = this.getClass().getResourceAsStream("/config.properties");
//这种方法同理
【Springboot项目读取Jar包中resource目录下文件】查阅资料最后改为:
Resource res = new ClassPathResource("/config.properties", this.getClass());
logger.info(res.getURL().toString());
InputStream fis = res.getInputStream();
这里的classPath默认是相对this.getClass的路径.如果需要绝对路径, 就需要加个/, 代表从根开始找.
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 17|17 关山松 第二课作业#公众号项目# D20
- RxJava|RxJava 在Android项目中的使用(一)
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- 靠QQ月入上万灰色暴利偏门的项目
- spring|spring boot项目启动websocket
- ExcelPackage读取写入
- springboot使用redis缓存