栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot系列学习一------yaml格式的多环境配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot系列学习一------yaml格式的多环境配置

SpringBoot系列学习一------yaml格式的多环境配置

Spring Boot 2.4以上版本中,对配置的加载机制做了较大的调整。就个人学习来讲做一个总结。

## 先来看看2.4版本以前的yaml配置
spring:
  profiles:
    active: "dev"
---
spring:
   profiles: "dev"
      include:"dev-db,dev-mq"
---
spring:
  profiles: "dev-mq"
name: dev-mq.sunwater.cn
server:
  port: 8001
---
spring:
  profiles: "dev-db"
name: dev-db.sunwater.cn
server:
  port: 8001
---
spring:
  profiles: "test"
name: test.sunwater.cn
server:
  port: 8001
---
spring:
  profiles: "prod"
name: prod.sunwater.cn
server:
  port: 8001

第一个spring.profiles.active: dev,代表默认激活dev配置
第二段dev配置中使用了spring.profiles.include来引入其他配置信息,这里模拟一下一个是dev的db配置,一个是dev的mq配置。在2.3和之前版本的时候,我们通常就是这样来分组配置不同中间件的。

2.4版本以后就变成了下面这样的
spring:
  profiles:
    active: dev
    group:
      "dev": "dev-db,dev-mq"
      "prod": "prod-db,prod-mq"
---
spring:
  config:
    activate:
      on-profile: 
        - dev-mq
name: dev-mq.sunwater.cn
server:
  port: 8001
---
spring:
  config:
    activate:
      on-profile: 
        - dev-db
name: dev-db.sunwater.cn
---
spring:
  config:
    activate:
      on-profile: 
        - test
name: test..sunwater.cn
server:
  port: 8002
---

spring:
  config:
    activate:
      on-profile:
        -prod
name: prod.sunwater.cn
server:
  port: 8003

我们可以看到在2.4版本的配置中,不同环境的配置定义都在第一段默认配置中了,所有的环境定义都转移到了spring.profiles.group的key字段(上面配置了dev),value字段则代表了每个环境需要加载的不同配置分组。

实际应用中的用法 我们也可以将spring.profiles.active写入yaml配置中,这样的作用就可以指定默认使用某一个环境的配置,通常我们可以设置成开发环境,这样有利于我们平时的开发调试,而真正部署到其他环境的时候则多以命令参数激活为主。
例如:yaml文件就像前面的示例一样
在生产环境中,我们可以使用加参数运行的方法来运行程序:
java -jar example.jar -D spring.profiles.active=prod


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821659.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号