🍁博客主页:👉不会压弯的小飞侠
✨欢迎关注:👉点赞👍收藏⭐留言✒
✨系列专栏:👉SpringBoot专栏(每日更新)
✨如果觉得博主的文章还不错的话,请三连支持一下博主。
🔥欢迎大佬指正,一起学习!一起加油!
日常开发中至少有三个环境,分别是开发环境(dev),测试环境(test),生产环境(prod),不同的环境的各种配置都不相同,手动改配置麻烦且容易出错,如何管理不同环境的配置参数。
🍁多环境开发(yaml版)
🔥新建一个模板
🔥编写yml文件
# 应用名称
spring:
profiles:
active: test
---
#设置环境
#生产环境
spring:
profiles: pro
server:
port: 80
---
#开发环境
spring:
profiles: dev
server:
port: 81
---
#测试环境
spring:
profiles:
active:
on-profie: test
server:
port: 82
🔥运行测试
⭐⭐⭐注意:
- active: test用来区分环境。
- profile属性过时了,要用group格式
spring:
profiles:
active:
on-profie: test
server:
port: 82
- 启动指定环境
spring:
profiles:
active: test
- 多环境开发需要设置若干种常用环境,例如开发、生产、测试环境
- yaml格式中设置多环境使用---区分环境设置边界
- 每种环境的区别在于加载的配置属性不同
- 启用某种环境时需要指定启动时使用该环境
🍁多环境开发(yaml版)多配置文件格式
🔥主启动配置文件
application.yml
spring:
profiles:
active: test
🔥环境分类配置文件
application-pro.yml
server:
port: 8082
application-dev.yml
server:
port: 8081
application-test.yml
server:
port: 8083
测试:
⭐⭐⭐注意:
- 主配置文件中设置公共配置(全局)
- 环境分类配置文件中用于设置冲突属性(局部)
🍁多环境开发(properties版)多配置文件格式
⭐⭐⭐注意:: 格式与yaml一致。
🔥主启动配置文件
application.properties
spring.profiles.active=pro
🔥环境分类配置文件
application-pro.properties
server.port=92
application-dev.properties
server.port=91
application-test.properties
server.port=93
测试:
🍁多环境开发独立配置
- 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下
🔥application-dev.yml
server:
port: 80
🔥application-devDB.yml
server:
port: 81
🔥application-devMVC.yml
server:
servlet:
context-path: /ebank
port: 82
- 使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔
🔥application.yml
spring:
profiles:
active: dev
include: devDB,devMVC
⭐⭐⭐注意:当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效。
🔥测试
🍁group属性替代include属性
- 从SpringBoot2.4版开始使用group属性替代include属性,降低了配置书写量
- 使用group属性定义多种主环境与子环境的包含关系
🔥application.yml
spring:
profiles:
active: dev
group:
"dev": devDB,devMVC
"pro": proDB,proMVC
🔥测试
⭐⭐⭐**注意:
- 当主环境dev与其他环境有相同的属性时,主环境属性生效,其他环境中有相同的属性时最后加载的环境属性生效。
- 多环境开发使用group属性配置文件分组,便于线上维护管理。
🍁maven与Springboot多环境兼容
🔥在Maven中设置多环境属性
<!-- 设置多环境-->
<profiles>
<profile>
<id>env_dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<!-- 默认启动dev-->
<!--<activation>
<activeByDefault>true</activeByDefault>
</activation>-->
</profile>
<profile>
<id>env_pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<build>
🔥application.yml
spring:
profiles:
active: @profile.active@
group:
"dev": devDB,devMVC
"pro": proDB,proMVC
- 当maven与SpringBoot同时对多环境进行控制时,以Maven为主SpringBoot使用@..@占位符读取Maven对应的属性。
🔥 clean项目重新Package
打包详细步骤:点击直接查看
🔥测试