Spring 对外部化配置的加载有明确的顺序。
- 主目录上的 Devtools 全局设置属性(当 devtools 处于活动状态时为 ~/.spring-boot-devtools.properties)。
- 测试中的 @TestPropertySource 注释。
- 测试中的 @SpringBootTest#properties 注释属性。
- 命令行参数。
- 来自 SPRING_APPLICATION_JSON 的属性(嵌入在环境变量或系统属性中的内联 JSON)。
- ServletConfig 初始化参数。
- ServletContext 初始化参数。
- 来自 java:comp/env 的 JNDI 属性。
- Java 系统属性 (System.getProperties())。
- 操作系统环境变量。
- 仅具有随机属性的 RandomValuePropertySource。*。
- 打包 jar 之外的特定于配置文件的应用程序属性(application-{profile}.properties 和 YAML 变体)。
- 打包在 jar 中的特定于配置文件的应用程序属性(application-{profile}.properties 和 YAML 变体)。
- 打包 jar 之外的应用程序属性(application.properties 和 YAML 变体)。
- 打包在 jar 中的应用程序属性(application.properties 和 YAML 变体)。
- @Configuration 类上的 @PropertySource 注释。
- 默认属性(通过设置 SpringApplication.setDefaultProperties 指定)。
但是,来自Spring Cloud Config的配置似乎有一个明显的遗漏。有谁知道 Spring Cloud Config 适合上面的位置