Spring Boot使用profile切换环境配置

一、创建不同环境的配置文件

我们开发的服务通常会部署在不同的环境中,例如开发环境、测试环境,生产环境等,而不同环境需要不同的配置。最典型的场景就是在不同的环境下需要连接不同的数据库,需要使用不同的数据库配置。我们期待实现的配置效果是:

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

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

  • 全局(默认)配置文件:application.yml
  • 开发环境配置文件:application-dev.yml
  • 测试环境配置文件:application-test.yml
  • 生产环境配置文件:application-prod.yml

二、切换环境配置的几种方式

1、方式一:配置application.yml

application.yml是默认使用的配置文件,在其中通过spring.profiles.active设置使用哪一个配置文件,下面代码表示使用application-prod.yml配置,如果application-prod.yml和application.yml配置了相同的配置,比如都配置了运行端口,那application-prod.yml的优先级更高

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

2、方式二:IDEA参数配置

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

Program arguments设置 --spring.profiles.active=test

Active Profile 设置 test

这三个参数不要一起设置,会引起冲突,选一种即可,如下图:

3、方式三:命令行运行Jar包

将项目打成jar包,在jar包的目录下打开命令行,使用如下命令启动:

java -jar springboot-demo.jar --spring.profiles.active=test

4、方式四:Docker容器运行

如果SpringBoot项目部署到Docker中,创建Docker容器时也可以切换环境配置:

docker run -di --name=demo -p 8888:8888 -e "SPRING_PROFILES_ACTIVE=test" springboot-demo

 

一点教程,一个分享编程知识的公众号。跟着站长一起学习和进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「一点教程」,你已然超越了90%的程序员!

一点教程二维码