springboot jar包启动 读取resource下的文件

1.第一种方式,通过ClassPathResource加载

ClassPathResource classPathResource = new ClassPathResource("templates/test.xlsx");
InputStream inputStream =classPathResource.getInputStream();

2.通过当前线程的上下文类加载器获取

InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excleTemplate/test.xlsx");

3.通过当前类加载(未验证)

InputStream inputStream = this.getClass().getResourceAsStream("templates/propertyUser.xlsx");

项目开发时可用这种方式获取,因为已编译好在目录里能找到,但是如果在jar包中执行会找不到,所以不建议,具体原因笔者还在找,希望通过阅读spring源码来了解原因。

File file = ResourceUtils.getFile("classpath:excleTemplate/test.xlsx");
InputStream inputStream = new FileInputStream(file);

参考:https://www.jianshu.com/p/7d7e5e4e8ae3

你可能感兴趣的:(springboot)