SpringBoot 配置文件详解
TIP
SpringBoot 支持多种配置方式,按优先级顺序覆盖,灵活适应不同环境。
配置文件加载顺序
application.properties # 项目根目录
application.yml # 项目根目录
config/application.properties # config 子目录
config/application.yml # config 子目录YAML 配置
yaml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/db?useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 20
minimum-idle: 5
redis:
host: localhost
port: 6379
password:
timeout: 3000
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0多环境配置
yaml
# application.yml(主配置)
spring:
profiles:
active: dev
---
# application-dev.yml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/dev_db
---
# application-prod.yml
server:
port: 80
spring:
datasource:
url: jdbc:mysql://prod-server:3306/prod_db@Value 注入
yaml
# yaml
app:
name: MyApp
version: 1.0.0
servers:
- server1.example.com
- server2.example.comjava
@Component
public class AppConfig {
@Value("${app.name}")
private String appName;
@Value("${app.version}")
private String version;
@Value("#{'${app.servers}'.split(',')}")
private List<String> servers;
}@ConfigurationProperties
yaml
# yaml
app:
jwt:
secret: my-secret-key
expiration: 86400000java
@Component
@ConfigurationProperties(prefix = "app.jwt")
@Data
public class JwtProperties {
private String secret;
private long expiration;
}TIP
推荐使用 @ConfigurationProperties 代替 @Value,可以批量绑定配置、支持校验、更易维护。