SpringBoot的Classes
SpringBoot打包前
通过以下几种方法都可以获取resources的文件目录的文件
通过相对路径就可以。
// 方法1:获取文件或流
this.getClass().getResource("/")+fileName;
this.getClass().getResourceAsStream(failName);
// 方法2:获取文件
File file = org.springframework.util.ResourceUtils.getFile("classpath:test.txt");
// 方法3:获取文件或流
ClassPathResource classPathResource = new ClassPathResource("test.txt");
classPathResource .getFile();
classPathResource .getInputStream();
SpringBoot打包后
如果打成JAR包在运行项目的时候使用上面的读取文件路径
FILE FILE = NEW FILE(PATH) //会提示无法读取文件获取文件路径异常
//这个就是比较坑的一个地方一定要用下面的方法以流的方式获取jar文件下面的classes目录下面的静态资源文件
//获取输入流在重新修改输入流的内容或者怎么用视情况操作
// 方法1
InputStream io = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");
// 方法2
InputStream io = getClass().getClassLoader().getResourceAsStream("test.txt");
classPath与classPath*
//举个例子说一下:
//#Mybatis 配置
mybatis.mapperLocations=classpath*:mapper/*.xml
mybatis.configLocation=classpath:mybatis.xml
classpath 代表resource目录自己的项目目录;
如果是maven的pom工程并且是<modules> 子模块的项目
classpath* 代表的是 所有依赖的jar包中的resource目录扫描