Skip to main content

SpringBoot Relaxed Binding

  • Spring Boot 的 Relaxed Binding 特性是为了提供灵活性,允许你在不同配置源(如环境变量、命令行参数、属性文件等)中使用不同风格的属性键命名,而 Spring Boot 会自动将它们统一为 Java 代码中的属性键格式。

  • 环境变量优先级比 .properties 配置更高

  • 属性加载:当 Spring Boot 应用启动时,它会首先加载.properties 文件中的配置属性。

  • 环境变量检查:在加载了.properties 文件之后,Spring Boot 会检查当前操作系统的环境变量。

  • 属性名称转换:Spring Boot 会将环境变量的命名风格转换为与.properties 文件中的属性键相匹配的格式。转换规则如下:

    • 将所有的大写字母转换为小写。
    • 将中划线(-)和点(.)替换为下划线(_)。

示例: 环境变量 SPRING_FIRST_SECOND_THIRD 会替换以下配置

spring.first.second.third = xxx
spring.first.second-third = xxx
spring.first.secondThird = xxx