文章目录
- 概要
- 推荐的配置结构
- 各配置文件内容示例
- 启动时切换环境
- 使用 @Profile 动态加载 Bean
概要
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: 8080spring:datasource:url: jdbc:mysql://localhost:3306/dev_dbusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driverjackson:serialization:indent_output: true
3、 application-prod.yml —— 生产环境配置
server:port: 8081spring:datasource:url: jdbc:mysql://prod-db:3306/prod_dbusername: rootpassword: root # 密码设置复杂一点!driver-class-name: com.mysql.cj.jdbc.Driverjackson: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}
}