我有一個多租戶環境,所以我需要在運行時更改 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)

瀟瀟雨雨
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_IMAGE
C:/Users/Public/Pictures/Sample Pictures/FooBar/Avatars/
DIRECTORY_USER_IMAGE
static final
我希望我答對了你的要求。
添加回答
舉報
0/150
提交
取消