gpt4 book ai didi

java - 使用 spring 4 将属性文件中的占位符替换为传递的 VM 参数(-D params)

转载 作者:行者123 更新时间:2023-11-30 06:31:18 24 4
gpt4 key购买 nike

我想在我的属性文件中有一个动态占位符

我的application.properties文件

属性

property.first=${some-value} (placeholder in property file )

我想将上面的占位符 (${some-value}) 替换为通过 VM 参数传递的值,例如 -Dsome-value=12

实际上我可以通过spring boot中的@Value注释来实现它,但我使用的是带有xml配置的spring 4。有没有通过在 ApplicationContext.xml 文件中添加任何 xml 配置来解决方案。(我不想更改 java 代码)

最佳答案

读取 Properties 中的 .properties 文件对象,然后用通过 VM 参数传递的值替换占位符:

public static boolean replaceVariables(Properties properties) {
boolean changed = false;
for (Entry<Object, Object> entry : properties.entrySet()) {
if (entry.getValue() instanceof String) {
String value = (String) entry.getValue();
value = value.trim();
if (value.startsWith("${") && value.endsWith("}")) {
value = System.getProperty(value.substring(2, value.length() - 1));
if (value == null)
entry.setValue("");
else
entry.setValue(value);
changed = true;
}
}
}
return changed;
}

关于java - 使用 spring 4 将属性文件中的占位符替换为传递的 VM 参数(-D params),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46047484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com