java是一种在spring boot application.yml中为具有默认值的列表定义变量的方法

ezykj2lf  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(503)

我试图在我的spring启动应用程序中创建一个可以被环境变量覆盖的属性。这样做的典型方式如下:

some:
  property: ${some_property:default_value}

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

some:
  property:
    - value1
    - value2
    - value3

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

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

技术上可行的方法是,我将该属性设置为逗号分隔的字符串,然后在代码中解析它,但是当您有很多非常长的值时,将所有值都设置为一个字符串可能会很难看。那么,有没有一种方法可以让list-spring属性成为application.yml中带有默认值的变量(因此不是java代码中的注解)

j8ag8udp

j8ag8udp1#

只需在application.properties中设置默认值:

some:
  property:
    - value1
    - value2
    - value3

要使用环境变量替代,请执行以下操作:

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

相关问题