SpringBoot多配置文件切换

2,488 阅读1分钟

摘录自:字母哥

一、多配置文件

在真实开发中,项目往往部署在不同的环境中,例如开发环境、测试环境,生产环境等,而不同环境需要不同的配置,例如:不同环境的数据库连接配置是不同的。 我们期待实现的配置效果是:

  • 减少配置修改次数
  • 方便环境配置切换

Spring Boot 默认的配置文件是 application.properties(或yml)。那么如何实现不同的环境使用不同的配置文件呢?一个比较好的实践是为不同的环境定义不同的配置文件,如下图所示:

08ca13216aa4a6160fdccd6507598b1b_329x163.png

全局配置文件:application.yml

开发环境配置文件:application-dev.yml

测试环境配置文件:application-test.yml

生产环境配置文件:application-prod.yml

二、切换环境的方式

1. 通过配置application.yml

application.yml是默认使用的配置文件,在其中通过spring.profiles.active设置使用哪一个配置文件,下面代码表示使用application-prod.yml配置:

#需要使用的配置文件
spring:
  profiles:
    active: prod

注意事项:如果application-prod.yml和application.yml配置了相同的配置,比如都配置了运行端口,那application-prod.yml的优先级更高 。

2. IDEA配置

点击IDEA界面窗口Run,打开Edit Configuration,出现Run/Debug Configurations界面:

  • VM options设置启动参数 -Dspring.profiles.active=prod

  • Program arguments设置 --spring.profiles.active=prod

  • Active Profile 设置 prod

注意事项:这三个参数不要一起设置,会引起冲突,选一种即可 。

2e05093186863f8664983a7b4a247dd8_921x617.png

3. 命令行方式

将项目打成jar包,在jar包的目录下打开命令行,使用如下命令启动(表示使用生产环境配置文件):

java -jar spring-boot-profile.jar --spring.profiles.active=prod