众所周知再开发过程中,从开发-测试-上线,至少也得有3个环境,然而每个环境的配置都不一样,例如数据库配置、Redis配置、等各种配置。如果在打包环节来一个一个进行修改配置的话,非常容易出错。
对于多环境配置,也有很多的构建工具,而他们的原理基本上也是通过配置多个不同环境的配置文件,进行区分打包。SpringBoot当然也支持。
springboot 提供多环境配置的机制,让开发者灵活根据需求而切换不同的配置环境
代碼地址:https://gitee.com/liyu2/blog.git,其中的mk-rabbitmq項目
第一步:添加各個環境的配置文件
首先我们再SpringBoot的项目中的resources文件夹下创建三个以yml为后缀的文件
application-dev.yml:开发环境
application-test.yml:测试环境
application-prod.yml:生产环境
第二步:選擇需要激活的配置文件
在application.yml文件中添加:spring.profiles.active=test,(表示开启测试环境)
如下:
server:
port: 7005
spring:
profiles:
active: test
第三步:接下來,我們測試一下激活不同環境的配置是不是使用的不同配置文件,各個環境配置不同端口
然后我们分别将:开发环境 ,生产环境,测试环境的配置文件中的端口号改为:7005,7006,7007
第四步:測試
我們設置使用test環境配置
test環境的端口我們設置的是7007(如下圖)
啓動。如下圖,可以看到生效的配置是test環境,端口為7007
同理我們繼續重複上面得到步驟,設置不同環境,運行查看即可
總結
在Spring Boot中多环境配置文件名必须满足:
application-{profile}.properties的固定格式,
其中{profile}对应你的环境标识
例如:
application-dev.properties:开发环境
application-test.properties:测试环境
application-prod.properties:生产环境
application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
而哪个配置文件运行:
spring.profiles.active=test
就会加载application-test.properties配置文件内容
在此一定要注意:
profile的配置文件可以按照application.properyies的放置位置一样,放于以下四个位置,
1.当前目录的 “/config”的子目录下
2.当前目录下
3.classpath根目录的“/config”包下
4.classpath的根目录下