繁体   English   中英

是在 Spring Boot application.yml 中为具有默认值的列表定义变量的方法

[英]Is where a way to define a variable in the Spring Boot application.yml for a list with a default value

我正在尝试在我的 Spring 引导应用程序中创建一个可以被环境变量覆盖的属性。 这样做的典型方式是这样的:

some:
  property: ${some_property:default_value}

然后我们使用 docker compose 将环境变量注入该属性。 我遇到的问题是指列表。 我想做同样的概念,但在 yml 中使用列表格式。 列表的正常格式是这样的:

some:
  property:
    - value1
    - value2
    - value3

我想让它成为一个环境变量,上面有默认值。 所以像这样(但是......正确):

some:
  property: ${some_list:[
    - defaultValue1
    - defaultValue2
    - defaultValue3
  ]}

技术上可行的事情是,如果我将该属性设为逗号分隔的字符串,然后在代码中对其进行解析,但是当您有很多非常长的值时,使用一个包含所有这些值的字符串可能会很难看。 那么有没有办法让列表 Spring 属性成为 application.yml 内部具有默认值的变量(所以不是 java 代码中的注释)

只需将默认值放在 application.properties 中:

some:
  property:
    - value1
    - value2
    - value3

使用环境变量覆盖:

SOME_PROPERTY[0]=anotherValue1
SOME_PROPERTY[1]=anotherValue2
SOME_PROPERTY[2]=anotherValue3

暂无
暂无

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

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