SpringBoot 单测 配置文件加载顺序

297 阅读1分钟

在 Spring Boot 项目中,单测加载 test 目录下的 application.yml 文件,主要是为了隔离测试环境和生产环境的配置。以下是原因和机制:

1. 隔离测试环境

  • 目的:测试环境的配置(如数据库、端口等)通常与生产环境不同,使用独立的 application.yml 可以避免影响生产环境。
  • 文件位置src/test/resources/application.yml 专用于测试。

2. Spring Boot 的配置文件加载机制

  • 优先级:Spring Boot 按特定顺序加载配置文件,test 目录下的配置文件优先级高于 main 目录。

  • 加载顺序

    1. file:./config/(项目根目录下的 config 文件夹)
    2. file:./(项目根目录)
    3. classpath:/config/src/main/resources/config
    4. classpath:/src/main/resources
    5. 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 的配置文件加载机制确保了测试配置的优先级。