亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jar之外的Spring Boot外部屬性

jar之外的Spring Boot外部屬性

Helenr 2022-05-12 18:18:50
我正在創建一個 Spring Boot 應用程序,我遇到了這個問題。我有我application.properties的資源文件夾,但我還需要 jar 外部的 external.properties 文件來配置諸如名稱、密碼等屬性。我希望在 jar 外部和資源文件夾內部有 external.properties 文件,以便在開發時進行測試。我嘗試創建這樣的配置文件:@Configuration @PropertySource("classpath:" + SpringConfiguration.EXTERNALIZED_PROPERTIES) @PropertySource(value = "file:./" +  SpringConfiguration.EXTERNALIZED_PROPERTIES, ignoreResourceNotFound = true) public class SpringConfiguration {       static final String EXTERNALIZED_PROPERTIES = "external.properties"; }但它仍然從資源文件夾中讀取屬性。我怎樣才能讓它從罐子外面讀???
查看完整描述

3 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

嘗試將絕對系統路徑指定為file:屬性值。

或者,我建議先將該絕對路徑設置為 ENV 變量,然后在以下位置使用該變量file:

@PropertySource("file:${EXTERNAL_RESOURCE_DIR}/application.properties")

因此,當該目錄更改時,您無需更改代碼。


查看完整回答
反對 回復 2022-05-12
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

Maciej Kowalski 的類似回答。


@PropertySources({

@PropertySource(value = {"classpath:application.properties"}, ignoreResourceNotFound = true),

@PropertySource(value = {"file:${external.config.location}/application.properties"}, ignoreResourceNotFound = true)

})


假設在文件夾“ /home/me/configs ”中有“ application.properties ”文件。


使用自定義文件夾運行應用程序:


java -jar app.jar --external.config.location="/home/me/configs"

或者


java -jar app.jar --external.config.location="C:\\users\\your_user\\configs"

此外,您可以將其導出為環境變量(unix)


export JAVA_OPTS='-Dexternal_config_location=/home/me/configs'


查看完整回答
反對 回復 2022-05-12
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

解決方案是刪除 external.properties 和配置文件。而不是使用它,而是將所有屬性放入 application.properties。并將 application.properties 放入帶有 jar 的文件夾中。Spring 自動將此屬性文件優先于 jar 中的屬性文件。



查看完整回答
反對 回復 2022-05-12
  • 3 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號