springboot2.4以后的配置


前言

springboot 2.4 以后配置引入配置的方式有些不同

这里是sb官方迁移文档说明

本人项目配置结构:

在这里插入图片描述

common为子公共模块,最终打包出来也是一个jar
application-common.yml里面也是公共的配置,但是也是区分环境的

提示:以下是本篇文章正文内容,下面案例可供参考

一、各项配置的理解?

1.spring.profiles.include、group | spring.config.import

先给出原始的配置(sb 2.4以前的版本使用)

# application.yml
spring:
  profiles:
    include: common
# application-dev.yml
spring:
  profiles:
    include: common-dev

上面这种配置方式只需要在启动时指定dev,最终生效的profile即:“dev”,“common”,“common-dev”
java -jar xx.jar --spring.profiles.active=dev

sb 2.4以后官方说了禁止在非根配置文件下再激活其他配置文件,这会导致某些配置被覆盖
按照新的规则,将上面的配置修改如下:

# application.yml
spring:
  config:
    import: optional:application-common.yml
  profiles:
    group:
      "dev": "common-dev"
# application-dev.yml
# 仅包含dev生效的项目配置
  • spring.config.import:类似于以前的include,引入指定配置,不会打印在启动日志的"The following x profiles are active: xxx",但会生效
  • spring.profiles.group: 指定当某个环境生效时,也附带将配置的环境一同生效,对应上面的配置就是,当指定 “dev” 生效时,“common-dev” 也一同生效

按照上诉理解,上的 application.yml 也可以变成以下两种配置方式,都可以生效

# application.yml
spring:
  profiles:
    include: common
    group:
      "dev": "common-dev"
# application.yml 当然这种方式如果不指定 dev 的话,common 也是不会生效的
spring:
  profiles:
    group:
      "dev": "common,common-dev"

2.spring.profiles.active

spring.profiles.active 这配置只有一点需要注意,当配置文件如下

# application.yml
spring:
  profiles:
    active: dev

却使用 java -jar xx.jar --spring.profiles.active=prod 启动时,最终生效的环境只有prod,不包含dev,即会被覆盖掉

二、关于官方迁移文档的理解

1. “—” :三个短横线

这个标识符是指在一个yml文件里面需要配置不同环境生效的配置,需要是用这个分隔符

2.spring.config.activate.on-profile

这个配置是结合三个短横线一起使用,标识这一段配置仅在指定环境生效时才加载,直至加载到下一个分隔符(三短横线)。这个配置是用来替换下面这种配置的:

spring:
  profiles: "dev"

如果之前项目没有这样用过,那 spring.config.activate.on-profile 这个配置也几乎可以忽略。

由于我的项目都是以xxx-dev.yml,xxx-prod.yml文件区分的,所以固然用不到这个配置,当然非要加也不是不可以的

如下两种配置,当指定dev时是一样的:

# application.yml
---
spring:
  config:
    activate:
      on-profile:  dev
 a: 1
# application-dev.yml
a: 1

总结

原则就是一个:不要在 xxx-dev.yml 再激活其他环境配置,或者如下使用都是禁止

spring:
  config:
    activate:
      on-profile:  dev
  profile:
    active: test

统一在根配置文件 application.yml 里面加载,反正官方推荐用group。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值