繁体   English   中英

Spring Boot YAML默认值和环境变量像HOCON文件一样被覆盖

[英]spring boot YAML default and environment variable override like HOCON files

spring-boot YAML文件中是否有一种方法可以与HOCON文件中的方法相同,您可以在其中拥有默认值,并可以使用如下环境变量覆盖它:

basedir = "/whatever/whatever"
basedir = ${?FORCED_BASEDIR}

在HOCON中,如果您没有定义名为FORCED_BASEDIR的环境变量,则basedir将为“ / whatever / whatever”,但如果您这样做,则basedir的值将为环境变量中定义的值。

谢谢

因此,根据下面的webdizz答案,我进行了一些查找,并在《 Spring Boot in Action》一书中找到了一个很好的描述。 这是层次结构:

实际上,有几种方法可以为Spring Boot应用程序设置属性。 Spring Boot将从多个属性源中绘制属性,包括:

  1. 命令行参数
  2. 来自java:comp / env的JNDI属性
  3. JVM系统属性
  4. 操作系统环境变量
  5. 随机生成的以random。*为前缀的属性的值(设置其他属性时引用,例如`$ {random.long})
  6. 应用程序外部的application.properties或application.yml文件许可给Thomas Snead 58第3章自定义配置
  7. 打包在应用程序内部的application.properties或application.yml文件
  8. @PropertySource指定的属性源
  9. 默认属性

Spring Boot提供了在多个级别定义变量的方法,并且您的情况也受支持,您只需要按照以下方式定义变量:

application.yml中

basedir: "/whatever/whatever"

在环境中:

export BASEDIR = "/another/whatever"

然后在运行时应用程序将使用环境中的值。

有关更多详细信息,请在此处输入链接描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM