天啦!竟然从来没有人讲过 SpringBoot 支持配置如此平滑的迁移

  • Post author:
  • Post category:其他


候鸟迁徙

SpringBoot 是原生支持配置迁移的,但是官方文档没有看到这方面描述,在源码中才看到此模块,

spring-boot-properties-migrator

,幸亏我没有跳过。看到这篇文章的各位,可算是捡到宝了,相信你继续往下看下去,定会忍不住点赞、收藏、关注。

效果


先放个效果吸引你 🙂

从 SpringBoot

2.0.0

版本开始,配置服务上下文,不支持

server.context-path

,而需要

server.servlet.context-path

配置。但是只要加上以下一个官方依赖,就可以支持使用

server.context-path

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-properties-migrator</artifactId>
    </dependency>


server.context-path

所对应的属性

ServerProperties#contextPath

在 Java 代码中已不存在,

server.servlet.context-path

所对应的的属性在内部类

Servlet

中才有,为何加了此依赖就能实现如此神奇的效果呢。

原理

SpringBoot 对外部化配置原生支持迁移功能,所谓迁移,具体是指对应配置的属性名变动,仍可以使用原来的属性名配置。在

spring-configuration-metadata.json

的信息可以辅助 IDE 进行配置的提示,也可以用来完成配置的迁移。非常的简单。

相关文章:

SpringBoot 配置提示功能

通过阅读代码,获得以下信息:

  1. 监听

    ApplicationPreparedEvent

    事件(即:环境已准备事件),执行以下操作并收集信息


  2. classpath*:/META-INF/spring-configuration-metadata.json

    中载入所有配置
  3. 从上下文的

    enviro



版权声明:本文为qq_30271947原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。