Spring Boot 2.4.0.M2 刚刚发布,它对 application.properties 和 application.yml 文件的加载方式进行重构。如果应用程序仅使用单个 application.properties 或 application.yml 作为配置文件,那么可能感受不到任何区别。但是如果您的应用程序使用更复杂的配置(例如,Spring Cloud 配置中心等),则需要来了解更改的内容以及原因。

为什么要进行这些更改
随着最新版本 Spring Boot 发布,Spring 一直在努力提升对 Kubernetes 的原生支持。在 Spring Boot 2.3 中,官方增加 Kubernetes Volume 的配置支持,但是未能实现。
Volume 配置挂载是 Kubernetes 的一项常用功能,其中 ConfigMap 指令用于直接在文件系统上显示配置。您可以装载包含多个键和值合并的完整 YAML 文件,也可以使用更简单的目录树格式,其中文件名是键,文件内容是值。
希望同时提供两者的支持,并且能够兼容我们现有的 application.properties 和 application.yml 。为此需要修改 ConfigFileApplicationListener 类。
ConfigFileApplicationListener 问题
在 Spring Boot 中配置文件加载类 ConfigFileApplicationListener 属于比较核心的底层代码,每次维护都是非常的困难。并不是因为代码编写错误或者缺少相关单元测试,而是在添加新功能时,很难解决之前存在的问题。<

Spring Boot 2.4对application.properties和application.yml的加载方式进行了重构,重点在于文档排序、多文档属性支持、环境激活配置等方面的改变。配置文件现在按声明顺序加载,不再允许在特定环境中激活配置。新增profile groups功能,导入扩展配置以及volume挂载配置的支持,增强了对Kubernetes的原生支持。
最低0.47元/天 解锁文章
525

被折叠的 条评论
为什么被折叠?



