簡體   English   中英

帶有敏感信息的spring boot外部配置不起作用

[英]spring boot external config with sensitive information not working

我正在嘗試將外部 yml 文件加載到我的 Spring Boot 應用程序中 在我的類路徑上,我有 3 個 yml 文件用於 dev prod 和 tls 配置文件。

我打算做的是加載一個名為“secret.yml”的外部文件來覆蓋 application-{profiles}.yml 文件中的值。

這個“secret.yml”文件包含有意義的信息。 它將被添加到 gitignore 文件中。

經過一些嘗試,我發現只有當我將名稱更改為 application-{profiles}.yml 而不是 secret.yml 時,spring 才不會覆蓋類路徑中的值

我試圖添加spring.config.name=secret但這對我不起作用。

./mvnw -Dmaven.test.skip=true -Dspring.config.additional-location=file:./secret.yml -Dspring.config.name=secret.yml

你有解決這個問題的方法嗎?

[更新]

我導出環境變量export secret="secret.yml"然后將變量傳遞給我的命令行

./mvnw -Dmaven.test.skip=true -Dspring.config.additional-location=file:./secret -Dspring.config.name=secret

沒有改變

如果您傳遞多個配置文件,請注意order ,最后一個將按順序覆蓋到先前的配置。

-Dspring.config.location=classpath:application-1.yaml,classpath:application-2.yaml .. other config

如果它們具有相同的配置, application-2.yaml的值將被覆蓋到application-1.yaml

**這將針對不同的配置進行合並。

嘗試使用 spring boot文檔中的絕對路徑:

java -jar app.jar --spring.config.name=application --spring.config.location=file:///Users/home/secret

如果您不知道絕對路徑,可以使用pwd命令找到它。

如果我將命令行包裝到 jvmArguments,這里的所有道具都可以工作。

./mvnw  -Dspring-boot.run.jvmArguments="-Dspring.config.additional-location=file:./secrets.yml"

謝謝大家的回復

暫無
暫無

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

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