Spring Boot配置
定义
Spring Boot使用一个全局的配置文件来配置应用程序的各种设置。配置文件可以是properties格式或YAML格式。Spring Boot支持多种配置方式,并且有严格的加载顺序。
作用
Spring Boot的配置系统具有以下优势: 1. 支持多种配置格式(properties和YAML) 2. 灵活的配置加载顺序 3. 支持多环境配置 4. 自动配置减少手动配置 5. 支持运行时动态配置 6. 类型安全的配置绑定
例子
Properties格式配置
# application.properties
server.port=8080
server.servlet.context-path=/api
spring.application.name=my-app
spring.profiles.active=dev
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
YAML格式配置
# application.yml
server:
  port: 8080
  servlet:
    context-path: /api
spring:
  application:
    name: my-app
  profiles:
    active: dev
  datasource:
    url: jdbc:mysql://localhost:3306/testdb
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
自定义配置类
@Component
@ConfigurationProperties(prefix = "my.app")
@Data
public class MyAppProperties {
    private String name;
    private String version;
    private String description;
    private Database database = new Database();
    @Data
    public static class Database {
        private String url;
        private String username;
        private String password;
    }
}
图表说明
graph TD
    subgraph Spring Boot配置系统
        subgraph 配置格式
            format1[Properties]
            format2[YAML]
        end
        subgraph 配置来源
            source1[配置文件]
            source2[环境变量]
            source3[命令行参数]
            source4[Java系统属性]
        end
        subgraph 配置特性
            feature1[多环境支持]
            feature2[自动配置]
            feature3[类型安全]
            feature4[动态配置]
        end
    end
    format1 --> format2
    source1 --> source2
    source2 --> source3
    source3 --> source4
    feature1 --> feature2
    feature2 --> feature3
    feature3 --> feature4
详细说明
配置加载顺序
- 命令行参数
 - Java系统属性
 - 操作系统环境变量
 - application-{profile}.yml
 - application.yml
 - @Configuration注解类
 
多环境配置
# application.yml
spring:
  profiles:
    active: dev
---
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8080
---
spring:
  config:
    activate:
      on-profile: prod
server:
  port: 80
配置属性验证
@Component
@ConfigurationProperties(prefix = "my.app")
@Validated
@Data
public class MyAppProperties {
    @NotBlank
    private String name;
    @Min(1)
    @Max(65535)
    private int port;
    @Email
    private String email;
}
注意事项
- 配置文件命名规范
 - 配置属性命名规范
 - 敏感信息加密
 - 配置文件的版本控制
 - 
配置文件的权限管理
Spring Bootの設定システムは、アプリケーションの様々な設定を柔軟に管理できます。複数の設定形式や環境に対応し、開発者は効率的にアプリケーションを設定できます。