SpringBoot多环境开发配置文件

本文介绍如何在Spring应用中使用yaml和Properties格式进行多环境配置,包括使用`activate: on-profile`和`group`属性区分开发、生产、测试环境,以及独立配置文件的组织和加载技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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. 小节

  1. 多环境开发需要设置若干种常用环境,例如开发、生产、测试环境
  2. yaml格式中设置多环境使用---区分环境设置边界
  3. 每种环境的区别在于加载的配置属性不同
  4. 启用某种环境时需要指定启动时使用该环境

3. 多环境开发(yaml版)多配置文件格式

在这里插入图片描述

  • 把上面配置的应用环境和三个环境分为四个部分
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 测试:
    在这里插入图片描述

多环境开发配置文件书写技巧(一)

  1. 主配置文件中设置公共配置(全局)
  2. 环境分类配置文件中常用于设置冲突属性(局部)

4. 小节

  1. 可以使用独立配置文件定义环境属性
  2. 独立配置文件便于线上系统维护更新并保障系统安全性

5. 多环境开发(Properties版)多配置文件格式

  • 和前面yaml版的配置格式是类似的
    在这里插入图片描述

  • 应用环境
    在这里插入图片描述

  • 生产、开发、测试环境分别如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 测试:
    在这里插入图片描述

  • properties文件多环境配置仅支持多文件格式

6. 多环境开发独立配置文件书写技巧

6.1 include 配置

多环境开发配置文件书写技巧(一)

  1. 主配置文件中设置公共配置(全局)
  2. 环境分类配置文件中常用于设置冲突属性(局部)

多环境开发独立配置文件书写技巧(二)

  • 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下:
  1. application-devDB.yml
  2. application-devRedis.yml
  3. 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属性设置配置文件分组,便于线上维护管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兮动人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值