背景:使用Maven搭建的多模块的Java Web项目,其中有common模块以及web模块
需求:common模块有个类需要读取SysConfig.properties文件,现要求将所有的配置文件都放到web模块下的resource目录中,方便修改.
解决方案:采用Spring读取properties,然后将property
对象注入到PropertiesUtil
类中
bean 配置如下
<bean id="propertiesUtil" class="com.infosys.kse.util.PropertiesUtil">
<property name="locations">
<list>
<value>classpath:SysConfig.properties</value>
</list>
</property>
</bean>
Java代码如下
public class PropertiesUtil extends PropertyPlaceholderConfigurer {
private static Map<String, String> properties;
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
throws BeansException {
// TODO Auto-generated method stub
super.processProperties(beanFactoryToProcess, props);
properties = new HashMap<>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
String valueStr = props.getProperty(keyStr);
valueStr = StringUtils.trimToEmpty(valueStr);
properties.put(keyStr, valueStr);
}
}
private PropertiesUtil() {}
public static String getString(String key) {
return properties.get(key);
}
}