知识卡片

外部配置分层覆盖原则

专业/工作 · 618.d

内容

外部化配置的设计目标是让同一份代码能在不同环境下运行而不用改代码,实现方式是给不同来源的配置值定义严格的优先级顺序:命令行参数、系统环境变量这类”运行时临时指定”的来源,优先级高于打包在程序内部的配置文件;而更具体、更贴近当次运行场景的配置(如特定profile的配置),优先级高于笼统的默认配置。本质上是”离运行现场越近、越临时的设置,越应该能覆盖离运行现场越远、越静态的设置”。发散:这和很多系统里”运行时参数 > 环境变量 > 配置文件 > 代码默认值”的分层覆盖惯例是同一套设计哲学,不是Spring Boot独有。

参考来源

《Spring Boot应用开发实战》第1章《Spring Boot基础知识》