maven中的profile概念,在spring-boot中一样适合,只要约定以下几个规则即可:
一、不同环境的配置文件以"application-环境名.yml"命名
举个粟子:
如果有二个环境dev、prod,项目工程中有上述二个文件即可。
二、主配置文件application.yml中,显式激活某个环境
这样默认就激活了dev环境
三、与环境相关的差异配置部分,放在各自的配置文件中
举第二个粟子
四、线上部署/运行时动态环境切换
通常开发阶段默认激活的是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的做法,简单!