Spring Boot:如何创建Dev、Prod、Qlty三个环境配置文件并实现切换?
Spring Boot多环境数据库配置实现指南
1. 创建环境专属配置文件
直接按Spring Boot的命名规则,在src/main/resources目录下创建三个配置文件:
application_dev.properties:开发环境配置application_qlty.properties:质检环境配置application_prod.properties:生产环境配置
每个文件仅存放对应环境的数据库差异配置,示例如下:
开发环境(application_dev.properties)
# 开发库连接信息 spring.datasource.url=jdbc:mysql://localhost:3306/dev_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 spring.datasource.username=dev_user spring.datasource.password=dev_pass spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 开发环境连接池参数 spring.datasource.hikari.maximum-pool-size=10
质检环境(application_qlty.properties)
# 质检库连接信息 spring.datasource.url=jdbc:mysql://qlty-server:3306/qlty_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 spring.datasource.username=qlty_user spring.datasource.password=qlty_pass spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 质检环境连接池参数 spring.datasource.hikari.maximum-pool-size=20
生产环境(application_prod.properties)
# 生产库连接信息 spring.datasource.url=jdbc:mysql://prod-server:3306/prod_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 spring.datasource.username=prod_user spring.datasource.password=prod_pass spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 生产环境连接池参数 spring.datasource.hikari.maximum-pool-size=50
同时保留主配置文件application.properties,存放所有环境通用的配置:
# 全局通用配置 spring.jpa.hibernate.ddl-auto=none mybatis.mapper-locations=classpath:mapper/*.xml logging.level.com.yourpackage=DEBUG
2. 激活指定环境加载对应配置
Spring Boot提供多种灵活的方式指定要激活的环境,优先级从高到低依次为:命令行参数 > 环境变量 > 主配置文件。
方式一:主配置文件指定默认环境
在application.properties中添加默认激活的环境,适合本地开发场景:
# 默认启动开发环境 spring.profiles.active=dev
方式二:启动时通过命令行参数指定
启动Jar包时直接传入参数,适合服务器部署时切换环境:
# 启动生产环境 java -jar your-app.jar --spring.profiles.active=prod # 启动质检环境 java -jar your-app.jar --spring.profiles.active=qlty
方式三:IDE运行时快速切换
在IDE的运行配置中,添加VM参数或程序参数:
- VM参数:
-Dspring.profiles.active=dev - 程序参数:
--spring.profiles.active=dev
方式四:系统环境变量指定
通过环境变量设置,适合持续部署场景:
- Linux/macOS:
export SPRING_PROFILES_ACTIVE=prod java -jar your-app.jar - Windows:
set SPRING_PROFILES_ACTIVE=prod java -jar your-app.jar
3. 简便最佳实践
- 配置拆分边界清晰:主配置只存通用配置,环境专属文件仅放该环境独有的配置(数据库信息、第三方服务地址、连接池参数等),避免冗余。
- 敏感信息加密存储:生产环境的数据库密码等敏感内容,不要硬编码在配置文件中,用Spring Boot自带的加密工具(如Jasypt)或环境变量注入。
- 构建时绑定环境:用Maven/Gradle的Profile功能,打包时自动绑定对应环境,比如Maven配置:
打包执行<profiles> <profile> <id>dev</id> <properties> <spring.profiles.active>dev</spring.profiles.active> </properties> </profile> <profile> <id>prod</id> <properties> <spring.profiles.active>prod</spring.profiles.active> </properties> </profile> </profiles>mvn package -Pprod即可生成绑定生产环境的Jar包。 - 本地多配置快速切换:在IDE中保存多个运行配置,分别绑定dev、qlty环境,一键启动对应环境。
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

