spring-boot 速成(5) profile区分环境

时间:2021-12-09 19:23:11

maven中的profile概念,在spring-boot中一样适合,只要约定以下几个规则即可:

一、不同环境的配置文件以"application-环境名.yml"命名

举个粟子:

spring-boot 速成(5) profile区分环境

如果有二个环境dev、prod,项目工程中有上述二个文件即可。

二、主配置文件application.yml中,显式激活某个环境

spring-boot 速成(5) profile区分环境

这样默认就激活了dev环境

三、与环境相关的差异配置部分,放在各自的配置文件中

举第二个粟子

spring-boot 速成(5) profile区分环境

spring-boot 速成(5) profile区分环境

四、线上部署/运行时动态环境切换

通常开发阶段默认激活的是dev环境,部署到线上时是prod环境,但是打包发布时,可能经常会忘记了改application.yml中的默认激活环境,可以参考下面的几种做法:

4.1 参考上一节的做法,部署时在./config下放置一个application.yml来覆盖默认的激活环境(这个可以在打包一键部署的shell脚本中自动处理)

4.2 启动shell脚本中,动态指定,例如 java -jar spring-boot-web-demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

4.3 也可以参考gradle项目中profile的通用做法(见之前的文章: gradle项目中profile的实现

推荐用4.2的做法,简单!