个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
---
分隔不同的环境,从而实现多环境# 这里是公共配置
# 设置应用哪个环境(这里应用dev环境)
spring:
profiles:
active: dev
---
# 假设这是生产环境
# 过时格式设置环境
spring:
profiles: pro
# 具体参数设置
server:
port: 80
---
# 假设这是开发环境
# 标准格式设置环境
spring:
config:
activate:
on-profile: dev
# 具体参数设置
server:
port: 81
---
# 假设这是测试环境
# 推荐使用此格式(标准格式)
spring:
config:
activate:
on-profile: test
# 具体参数设置
server:
port: 82
小结
:
---
区分环境,设置边界application.yml
:# 设置应用哪个环境(这里应用dev环境)
spring:
profiles:
active: dev
include属性
在激活指定环境的情况下,可以同时对多个环境进行加载使其生效,多个环境间使用逗号分隔:spring:
profiles:
active: dev
include: test,pro
# 这样书写,文件的加载顺序是:test 》 pro 》 dev
# 当主环境dev与其他环境有相同属性时,主环境属性失效;其他环境中有相同的属性时,最后加载的环境属性生效
application-pro.yml
:server:
port: 80
application-dev.yml
:server:
port: 81
application-test.yml
:server:
port: 82
小结
:
application.properties
:# 设置应用哪个环境(这里应用test环境)
spring.profiles.active=test
application-pro.properties
:server.port=80
application-dev.properties
:server.port=81
application-test.properties
:server.port=82
使用include属性
在激活指定环境的情况下,可以同时对多个环境进行加载使其生效,多个环境间使用逗号分隔
当主环境dev与其他环境有相同属性时,主环境属性失效;其他环境中有相同的属性时,最后加载的环境属性生效
group属性
代替include属性,降低了配置书写量group属性
定义多种主环境与子环境的包含关系spring:
profiles:
active: dev
group:
"dev": devDB,devRedis,devMVC
"pro": proDB,proRedis,proMVC
"test": testDB,testRedis,testMVC
# 这里启动dev组,配置文件扫描顺序是:dev 》 devDB 》 devRedis 》 devMVC
# 当主环境dev与其他环境有相同属性时,主环境属性失效;其他环境中有相同的属性时,最后加载的环境属性生效
多环境开发使用group属性设置配置文件分组,便于线上维护管理
<profiles>
<profile>
<id>dev_envid>
<properties>
<profile.active>devprofile.active>
properties>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
profile>
<profile>
<id>pro_envid>
<properties>
<profile.active>proprofile.active>
properties>
profile>
<profile>
<id>test_envid>
<properties>
<profile.active>testprofile.active>
properties>
profile>
profiles>
@@
符号将Maven属性括起来表示引用spring:
profiles:
active: @profile.active@ # 因为Maven中为dev配置了activeByDefault的默认启动配置,这里代表dev组
group:
"dev": devDB,devRedis,devMVC
"pro": proDB,proRedis,proMVC
"test": testDB,testRedis,testMVC
.jar文件
mvn clean
mvn package
小结
:
@...@
占位符获取Maven对应配置属性值