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

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

彈簧配置應用程序.多租戶環境中占位符的屬性

彈簧配置應用程序.多租戶環境中占位符的屬性

蝴蝶不菲 2022-08-17 10:09:26
我有一個多租戶環境,所以我需要在運行時更改 application.properties 中的一些路徑以使用特定租戶的文件夾。例如,在我的應用程序屬性中:image.avatars=C:/Users/Public/Pictures/Sample Pictures/${tenant}/Avatars/在我的課堂上,我使用@Autowiredprivate Environment env;private static final String DIRECTORY_USER_IMAGE = "image.avatars";.....Method    env.getRequiredProperty(DIRECTORY_USER_IMAGE)我讀了關于,但我不明白它如何在我的情況下使用,因為它只有一個這樣的參數。有沒有一種簡單的方法來更改占位符而不操作String(帶替換)?我認為 env.resolveRequiredPlaceholders 需要屬性的名稱和占位符的 varargs,但它是不同的。謝謝env.resolveRequiredPlaceholdersenv.resolveRequiredPlaceholders(TenantContext.getCurrentTenant())
查看完整描述

2 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

您可以使用 .String.format()

僅在屬性中使用%s

image.avatars=C:/Users/Public/Pictures/Sample Pictures/%s/Avatars/

和在代碼

String.format(imageavatars, tenant)


查看完整回答
反對 回復 2022-08-17
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

這可能不完全是你想要的(因為我很難理解你的場景),但是把

image.avatars=C:/Users/Public/Pictures/Sample Pictures/${tenant}/Avatars/

在您的 中,并使用application.properties

@Value("${image.avatars}")
private String DIRECTORY_USER_IMAGE;

在您的Bean/服務中,并使用命令行參數運行應用程序,例如

--tenant="FooBar"

這將給出值,您可以根據需要更改 CLI 參數。但請注意,這不再是了。DIRECTORY_USER_IMAGEC:/Users/Public/Pictures/Sample Pictures/FooBar/Avatars/DIRECTORY_USER_IMAGEstatic final

我希望我答對了你的要求。


查看完整回答
反對 回復 2022-08-17
  • 2 回答
  • 0 關注
  • 86 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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