Spring Boot 应用配置与检查全解析
1. 应用配置基础
在开发应用程序时,没有一个应用是孤立存在的。Spring Boot 应用为开发者提供了多种强大的机制,以便在应用运行时动态配置和重新配置应用。这些机制利用 Spring Environment 来管理来自各种源的配置属性,以下是一些常见的属性源:
- Spring Boot Developer Tools (devtools) 全局设置属性(当 devtools 激活时,位于 $HOME/.config/spring-boot 目录)
- 测试中的 @TestPropertySource 注解
- 测试中的 properties 属性(可用于 @SpringBootTest 和各种测试注解)
- 命令行参数
- SPRING_APPLICATION_JSON 中的属性(嵌入在环境变量或系统属性中的内联 JSON)
- ServletConfig 初始化参数
- ServletContext 初始化参数
- JNDI 属性(来自 java:comp/env)
- Java 系统属性(System.getProperties())
- 操作系统环境变量
- 仅包含 random.* 属性的 RandomValuePropertySource
- 打包 jar 外部的特定配置文件(application-{profile}.properties 及其 YAML 变体)
- 打包 jar 内部的特定配置文件(application-{profile}.properties 及其 YAML 变体)
这些属性源的优先级