在加载 JBOSS 应用程序服务器时,我需要覆盖属性文件中给出的属性值。
我尝试使用以下代码覆盖 PropertyPlaceholderConfigurer 中的 processProperties() 方法。
我的属性文件有这个条目
base.url="defaultUrl"
public class CustomPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
protected String convertPropertyValue(String originalValue) {
return (originalValue != null) ? originalValue.trim() : originalValue;
}
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
throws BeansException {
super.processProperties(beanFactory, props);
for (Enumeration names = props.propertyNames(); names.hasMoreElements();) {
String key = (String) names.nextElement();
props.put("base.url", getUpdatedUrl());
}
}
}
我在应用程序上下文中的占位符 ${base.url} 中注入 base.url 值。
我应该如何在运行时更新给定属性的值。上面的代码总是取属性文件中的值而不是更新的值。