vert.x 本身不支持 spring boot 风格的层级化配置绑定与环境变量 fallback,默认需手动读取系统变量;但通过 vert.x config 模块,可统一加载 yaml/json/properties 等格式配置,并自动融合环境变量、系统属性等多源值,实现 `${key:default}` 式占位符解析与优雅降级。
在 Vert.x 中实现类似 Spring Boot 的 application.yml 外部化配置(支持 EKS ConfigMap 注入 + 默认值 fallback),核心在于 Vert.x Config 模块 —— 它专为多源配置合并与动态解析而设计,远超 System.getenv().getOrDefault() 的简单封装。
✅ 步骤一:引入 Vert.x Config 依赖
Maven(以 Vert.x 4.x 为例):
io.vertx vertx-config 4.5.7
✅ 步骤二:定义结构化配置(YAML 格式)
创建 config.yaml(可置于 classpath 或挂载至容器 /etc/vertx/config.yaml):
SUD:
BASEPATH: ${SUD_SERVICE_BASE_PATH:https://origin-sud.com}
MCS_BASEPATH: ${SUD_SERVICE_MCS_BASE_PATH:https://sud.com/}
MCS_TOKEN: ${SUD_SERVICE_MCS_TOKEN:a2341b8b-4ca5-4513-8c52-gf267bihbh}
MCS_SUBSCRIPTION_ENDPOINT: ${SUD_SERVICE_MCS_SUBSCRIPTION_ENDPOINT:/v1/manag}
HOST: ${SUD_SERVICE_HOST:sud.com}
⚠️ 注意:此处 ${…:default} 是 Vert.x Config 原生支持的占位符语法(无需额外解析器),它会优先从环境变量读取,缺失时自动回退到冒号后的默认值。