簡體   English   中英

通過環境變量覆蓋 Spring 引導 yaml 屬性

[英]Override Spring Boot yaml property via environment variable

使用 Spring Boot 2.6.1,如果我有一個如下所示的application.properties文件:

spring.datasource.url="jdbc://blahblah"

我可以在運行時使用名為spring.datasource.url的環境變量覆蓋該值,我的應用程序將連接到 env var 中指定的數據庫。

但是,如果我有一個等效的application.yaml文件,那么以這種方式指定環境變量似乎沒有效果。

spring:
  datasource:
    url: "jdbc://localhost..."

但是,如果我將環境變量重命名為SPRING_DATASOURCE_URL ,則覆蓋將再次起作用。 這似乎在其他屬性中也是一致的(不僅僅是數據源 url)。

瀏覽文檔並不清楚為什么會出現這種情況,除了 yaml 配置似乎通常與“普通”屬性文件略有不同。

這種行為是預期的嗎?

如果我沒有誤解,您應該創建 application-{profile}.yml 文件並為環境指定數據源 url

文檔中所述,您應該使用環境變量SPRING_DATASOURCE_URL來設置spring.datasource.url屬性。 我很驚訝spring.datasource.url在配置為環境變量時完全有效,我不會依賴它繼續這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM