在 Spring Boot 项目中,单测加载 test 目录下的 application.yml 文件,主要是为了隔离测试环境和生产环境的配置。以下是原因和机制:
1. 隔离测试环境
- 目的:测试环境的配置(如数据库、端口等)通常与生产环境不同,使用独立的
application.yml可以避免影响生产环境。 - 文件位置:
src/test/resources/application.yml专用于测试。
2. Spring Boot 的配置文件加载机制
-
优先级:Spring Boot 按特定顺序加载配置文件,
test目录下的配置文件优先级高于main目录。 -
加载顺序:
file:./config/(项目根目录下的config文件夹)file:./(项目根目录)classpath:/config/(src/main/resources/config)classpath:/(src/main/resources)src/test/resources/(测试资源目录)
3. 测试配置的优先级
- 测试优先:在测试时,
src/test/resources/application.yml会覆盖src/main/resources/application.yml中的相同配置。
4. 如何使用测试配置
- 默认加载:Spring Boot 测试框架会自动加载
test目录下的application.yml。 - 自定义配置:可通过
@TestPropertySource或@SpringBootTest注解指定其他配置文件。
总结
Spring Boot 单测加载 test 目录下的 application.yml 是为了隔离测试环境,确保测试独立且不影响生产配置。Spring Boot 的配置文件加载机制确保了测试配置的优先级。