废话不多说,不要问为什么可以会切换环境,boot会识别,自己去分析启动类那个run方法去,这里直接开干,教步骤。
第一步
在pom.xml中添加以下配置
<!--分别设置开发,测试,生产环境-->
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<environment>dev</environment>
</properties>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<environment>test</environment>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>pro</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<environment>pro</environment>
</properties>
</profile>
</profiles>
设置以上东西之后,如果你是idea开发工具开发的话,你的maven面板里就会出现profiles模块,这个好处是什么,就是编译打包的时候 可以直接勾选。
第二步
如果你是application.yml的话 设置下面
spring:
profiles:
active: @environment@
如果你是application.properties的话 设置下面
spring.profiles.active=@environment@
特别说明: 有些人不懂environment是啥, environment就是环境变量,之所以为什么叫environment 看第一步的操作是不是有environment 标签,就是标签里的值
第三步
在application.yml 同级目录的地方(其他地方应该也可以,有空的童鞋可以试一下) 创建以下这种文件
application-dev.yml 开发
application-prod.yml 生产
------
application-dev.properties 开发
application-prod.properties 生产
不要问为什么,boot自身会去识别application开头的。
做完以上三步基本就能做到测试环境切换了。但是目前自定义自己设置的配置文件还不知道如何也可以根据环境变化,只能暂时将这种配置写到application-dev.yml或者 application-dev.properties中。(在阿里巴巴的配置中心
nacos中好像可以做到,多配置集的操作)
#比如
user-dev.properties
order-dev.properties
#application.yml一般正常 变量配置非常多,多配置集操作可以将配置分离成
datasource.yml
redis.yml