1. 多环境开发(yaml版)
- 过时的格式
# 应用环境
spring:
profiles:
active: dev
---
# 生产环境
spring:
profiles: pro
server:
port: 80
---
# 开发环境
spring:
profiles: dev
server:
port: 81
---
# 测试环境
spring:
profiles: test
server:
port: 82
-
过时属性
-
推荐使用
# 应用环境
spring:
profiles:
active: dev
---
# 生产环境
spring:
config:
activate:
on-profile: pro
server:
port: 80
---
# 开发环境
spring:
config:
activate:
on-profile: dev
server:
port: 81
---
# 测试环境
spring:
config:
activate:
on-profile: test
server:
port: 82
2. 小节
- 多环境开发需要设置若干种常用环境,例如开发、生产、测试环境
- yaml格式中设置多环境使用
---
区分环境设置边界 - 每种环境的区别在于加载的配置属性不同
- 启用某种环境时需要指定启动时使用该环境
3. 多环境开发(yaml版)多配置文件格式
-
把上面配置的应用环境和三个环境分为四个部分
-
测试:
多环境开发配置文件书写技巧(一)
- 主配置文件中设置公共配置(全局)
- 环境分类配置文件中常用于设置冲突属性(局部)
4. 小节
- 可以使用独立配置文件定义环境属性
- 独立配置文件便于线上系统维护更新并保障系统安全性
5. 多环境开发(Properties版)多配置文件格式
-
和前面yaml版的配置格式是类似的
-
应用环境
-
生产、开发、测试环境分别如下:
-
测试:
- properties文件多环境配置仅支持多文件格式
6. 多环境开发独立配置文件书写技巧
6.1 include 配置
多环境开发配置文件书写技巧(一)
- 主配置文件中设置公共配置(全局)
- 环境分类配置文件中常用于设置冲突属性(局部)
多环境开发独立配置文件书写技巧(二)
- 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下:
- application-devDB.yml
- application-devRedis.yml
- application-devMVC.yml
- 使用
include
属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔
spring:
profiles:
active: dev
include: devDB,devRedis,devMVC
-
测试如下
-
可以看到 dev 是最后被加载的(activity对应的都是最后被加载的),最终加载的端口是 dev 下的 8090 端口,dev-MVC 配置的加载路径也会会加载进来
- 注意:最后加载的配置文件属性会覆盖前面相同的属性
- 当主环境
dev
与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效
6.2 group 配置
- 从Spring2.4版开始使用
group
属性替代include
属性,降低了配置书写量 - 使用
group
属性定义多种主环境与子环境的包含关系
spring:
profiles:
active: dev
group:
"dev": devDB,devMVC
"pro": devDB,devMVC
"test": devDB,devMVC
-
启动后,和前面使用 include 属性时,加载的顺序发生了变化,配置的 active: dev 放到了最前面的位置,加载顺序是 dev、devDB、devMVC
- 而最后加载的文件是 devMVC(端口为8892),依然是会覆盖前面相同的属性
- 多环境开发使用
group
属性设置配置文件分组,便于线上维护管理