• Spring Boot 2.4 对多环境配置的支持更改


    在目前最新的Spring Boot 2.4版本中,对配置的加载机制做了较大的调整。相关的问题最近也被问的比较多,所以今天就花点时间,给大家讲讲Spring Boot 2.4的多环境配置较之前版本有哪些变化。

    多环境配置

    2.4版本之前

    先回顾下,2.4版本之前,我们在yaml配置文件中,使用spring.profiles来定义不同环境的标识,比如下面这样:

    spring:
      profiles: "dev"
    
    name: dev.didispace.com
    
    ---
    
    spring:
      profiles: "test"
    
    name: test.didispace.com
    
    ---
    
    spring:
      profiles: "prod"
    
    name: prod.didispace.com
    

    2.4版本之后

    而在本次2.4版本升级之后,我们需要将spring.profiles配置用spring.config.activate.on-profile替代,比如上面的配置需要修改为如下配置:

    spring:
      config:
        activate:
          on-profile: "dev"
    
    name: dev.didispace.com
    
    ---
    
    spring:
      config:
        activate:
          on-profile: "test"
    
    name: test.didispace.com
    
    ---
    
    spring:
      config:
        activate:
          on-profile: "prod"
    
    name: prod.didispace.com
    

    指定环境启动

    应用启动的时候,我们要加载不同的环境配置的参数不变,依然采用spring.profiles.active参数,对应值采用spring.config.activate.on-profile定义的标识名称。比如下面的命令就能激活dev环境的配置。

    java -jar myapp.jar -Dspring.profiles.active=dev
    

    在应用启动的时候,我们也能看到对应的配置激活日志:

    2020-12-16 16:34:20.614  INFO 5951 --- [           main] c.d.chapter12.Chapter12Application       : The following profiles are active: dev
    

    我们也可以将spring.profiles.active写入yaml配置中,这样的作用就可以指定默认使用某一个环境的配置,通常我们可以设置成开发环境,这样有利于我们平时的开发调试,而真正部署到其他环境的时候则多以命令参数激活为主。

    spring:
      profiles:
        active: "dev"
    
    ---
    
    spring:
      config:
        activate:
          on-profile: "dev"
    
    name: dev.didispace.com
    
    ---
    
    spring:
      config:
        activate:
          on-profile: "test"
    
    name: test.didispace.com
    
    ---
    
    spring:
      config:
        activate:
          on-profile: "prod"
    
    name: prod.didispace.com
    

    代码示例

    本文的相关例子可以查看下面仓库中的chapter1-2目录:

    如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!

    相关阅读

    欢迎关注我的公众号:程序猿DD,获得独家整理的免费学习资源助力你的Java学习之路!另每周赠书不停哦~

  • 相关阅读:
    串行通讯FIFO法和中断处理程序中直接处理的比较
    [FSM]状态机入门——程咬金只要三斧头厉害
    [FSM]状态机平面(任务平面)
    KMP算法
    【对线面试官】 Java 泛型
    【对线面试官】Java注解
    古文明中的经典作品
    《我是猫》总结
    Vue快速使用
    《算法帝国》总结
  • 原文地址:https://www.cnblogs.com/didispace/p/14147944.html
Copyright © 2020-2023  润新知