Springboot多环境配置
本文最后更新于:2024年1月12日 晚上
前情提要
本文是从[如何优雅地部署Springboot in Ubuntu]一文中摘录的,为了便于检索
正片
为什么需要Springboot
多环境配置呢
主要原因是我们在开发环境和生产环境(or 测试环境)中对于同一个配置属性可能需要不同的值
例如:数据库密码、日志存放路径、静态资源服务器地址等等
所以最方便的方式是写两套配置文件,然后再不同场景进行切换,如:
- application.yml
- application-dev.yml
- application-prod.yml
注:命名规则:application-{profile}.yml
注:同名属性优先级:具体配置文件 > 通用配置文件(application.yml)
注:其实你想把不同环境配置文件写在一个文件里也可以,用---
分割,但是别吧,大哥
诶等等,怎么有三个配置文件
你傻啊,通用的配置放
application.yml
就好了难道你要写两遍啊
好的,那要怎么切换配置呢
默认情况下,也就是default
环境,只启用application.yml
or properties(这俩一样的,不多赘述)
有三种方式可以切换
- 在
application.properties
中写上:spring.profiles.active=dev
or prod等等 - 在
java -jar
的时候传入命令行参数--spring.profiles.active=prod
来激活生产环境配置 - 在
IDEA
中配置:编辑运行/调试配置->活动/有效配置(可以找找,这个简单,主要不想放图了)
怎么知道Springboot
现在是什么环境呢?在程序启动的时候会输出
1 |
|
好的,酱紫就可以完美切换配置文件了,要是还有什么需要修改的,只要在生成环境新建一个application-prod.yml
,就可以覆盖对应的属性了,这个大家应该很懂的,我就不说了
配置文件协作最佳实践
我们刚刚说了,有三个配置文件,但是一旦进入Git
多人协作,就会直接爆炸
因为每个人的本地环境是不一样的,所以application-dev.yml
势必会被改来改去,然后还上传Git
然后pull
的时候就会直接覆盖你的开发配置,就会想要 * 队友了
辣怎么办
要么就是不上传application-dev.yml
那不成啊,那想新增/修改配置,其他成员完全阿巴怎么办
其实我们可以建立application-dev-template.yml
文件,作为模板,非必要不修改这个文件
然后每个成员自己根据模板新建application-dev.yml
,且加入.gitignore
不上传Git
Peace
Ref
31 SpringBoot多环境的切换(生产环境、开发环境、测试环境)_spring boot生产和开发环境-CSDN博客