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の設定システムは、アプリケーションの様々な設定を柔軟に管理できます。複数の設定形式や環境に対応し、開発者は効率的にアプリケーションを設定できます。