[英]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.