簡體   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