当前位置: 首页 > article >正文

【实用小技巧】如何不更新application.yml而更新spring的配置

大家都知道,我们在java工程中,常常在application.yml中有各种各样的运行时的配置,一般来说都是这样的结构:

a:
  b:
    c: {ENV_NAME}

这样,我们在部署应用时,就可以通过在不同的局点修改ENV_NAME的值,来达到修改配置的目的。

但是如果是本来没存在在applicatoin.yml里面的配置呢,比如此时我需要再a.b.c下面加一个a.b.d?

当然,最直接的办法就是修改application.yml,加上a.b.d,就像这样:

a:
  b:
    c: {ENV_NAME}
    d: {ENV_NAME2}

但是这样就有个问题,在当下容器化的时代,这就意味着我要更改镜像,镜像一改,那涉及到的流程就比改配置多多了,比如整体的验证、镜像上线的变更等。

那有没有不修改application.yml就能修改spring application配置的方法呢?

答案是有的,就是这个:

更改应用程序外部属性的位置

 默认情况下,来自不同来源的属性会按定义的顺序添加到 Spring 中(有关确切顺序,请参阅“Spring Boot 功能”部分中的“外部化配置”)。Environment

您还可以提供以下系统属性(或环境变量)来更改行为:

  • spring.config.name (SPRING_CONFIG_NAME):默认为文件名的根目录。application

  • spring.config.location (SPRING_CONFIG_LOCATION):要加载的文件(例如类路径资源或 URL)。 为本文档设置了单独的属性源,系统属性、环境变量或命令行可以重写该属性源。Environment

无论您在环境中设置了什么,Spring Boot 始终如上所述加载。 默认情况下,如果使用 YAML,则扩展名为“.yaml”和“.yml”的文件也会添加到列表中。application.properties

所以,当我们需要添加a.b.d这个配置时,直接在部署这个spring application的地方声明一个A_B_D的环境变量,并赋上对应的值就行

 


http://www.kler.cn/a/534263.html

相关文章:

  • C++ Primer 算术运算符
  • java项目启动脚本
  • k8m 是一款轻量级、跨平台的 Kubernetes 仪表板
  • uniapp小程序自定义中间凸起样式底部tabbar
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.19 线性代数核武器:BLAS/LAPACK深度集成
  • 基于微信小程序的私家车位共享系统设计与实现(LW+源码+讲解)
  • 力扣-哈希表-454 四数相加Ⅱ
  • 中位数定理:小试牛刀> _ <2025牛客寒假1
  • 工作流项目BPMN.JS_Question梳理
  • 防孤岛保护装置在分布式光伏并网中的应用
  • 【深度学习框架】MXNet(Apache MXNet)
  • 体验 DeepSeek 多模态大模型 Janus-Pro-7B
  • 浙江安吉成新照明电器有限公司分布式光伏发电项目--安科瑞Acrel-1000DP分布式光伏监控系统
  • ES6 字符串、数值、数组扩展使用总结
  • 30.日常算法
  • 【Elasticsearch】 日期直方图聚合(`date_histogram`)
  • IC卡读卡器web插件YOWOCloudRFIDReader.js
  • 基于ArcGIS的SWAT模型+CENTURY模型模拟流域生态系统水-碳-氮耦合过程研究
  • C# Monitor类 使用详解
  • K8S学习笔记-------2.极简易懂的入门示例
  • OSCP - Other Machines - sar2HTML
  • JeecgBoot 对接本地化的大模型 DeepSeek-R1
  • 64.进度条 C#例子 WPF例子
  • vue3中的ref相关的api及用法
  • 离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析
  • matlab实现了一个多视角受限核机算法,结合了多个视角的数据进行二分类任务