1、参考文章:
https://www.cnblogs.com/yejg1212/p/3270152.html
2、测试及疑问
- 本机测试结果:
package com.example.demo02;
import com.example.demo02.controller.HelloController;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
//@RunWith(SpringRunner.class)
@SpringBootTest
public class Demo02ApplicationTests {
@Test
public void contextLoads() {
// file:/E:/javaproject/demo02/target/classes/com/example/demo02/controller/
// 这里获取的是类class文件所在的路径
System.out.println(HelloController.class.getResource(""));
// file:/E:/javaproject/demo02/target/test-classes/
// 获取的是当前运行类class文件所在的根路径
System.out.println(HelloController.class.getResource("/"));
// file:/E:/javaproject/demo02/target/test-classes/
System.out.println(HelloController.class.getClassLoader().getResource(""));
// null
System.out.println(HelloController.class.getClassLoader().getResource("/"));
}
}
package com.example.demo02;
import com.example.demo02.controller.HelloController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
// file:/E:/javaproject/demo02/target/classes/com/example/demo02/controller/
System.out.println(HelloController.class.getResource(""));
// file:/E:/javaproject/demo02/target/classes/
System.out.println(HelloController.class.getResource("/"));
// file:/E:/javaproject/demo02/target/classes/
System.out.println(HelloController.class.getClassLoader().getResource(""));
// null
System.out.println(HelloController.class.getClassLoader().getResource("/"));
SpringApplication.run(Application.class, args);
}
}
- 疑问:
- 1、 IDEA和Eclipse运行的结果读取路径不一样,查了资料但是没有让人信服的东西 -- 同学说可以在编辑器里面设置默认读取路径,在哪里设置??
- 2、为什么getResource("/")在test和controller下结果会有出入
3、用途
- 自定义获取配置文件新建
- 结合FreeMarker对模板进行动态获取