概要
Spring Boot 项目的多环境配置方案,通过 application.yml 配合 application-xxx.yml,可灵活切换开发、测试和生产环境。
推荐的配置结构
src/
└── main/
├── java/
└── resources/
├── application.yml # 主配置入口,统一设置 profile
├── application-dev.yml # 开发环境配置
├── application-test.yml # 测试环境配置(可选)
└── application-prod.yml # 生产环境配置
各配置文件内容示例
1、application.yml —— 统一入口配置
spring:
profiles:
active: dev # 默认环境,可通过命令行或环境变量覆盖
# 公共配置:所有环境都生效
server:
servlet:
context-path: /api
2、application-dev.yml —— 本地开发配置
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/dev_db
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
serialization:
indent_output: true
3、 application-prod.yml —— 生产环境配置
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://prod-db:3306/prod_db
username: root
password: root # 密码设置复杂一点!
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
serialization:
indent_output: false
logging:
level:
root: WARN
启动时切换环境
1、java -jar app.jar --spring.profiles.active=prod 【命令行指定(最常用)】
2、 IDEA 中配置 VM 参数(本地开发调试)
使用 @Profile 动态加载 Bean
基于不同环境加载不同的Bean
@Configuration
public class DataSourceConfig {
@Bean
@Profile("dev")
public DataSource devDataSource() {
// return dev datasource
}
@Bean
@Profile("prod")
public DataSource prodDataSource() {
// return prod datasource
}
}