动态读取properties文件,并且修改其中的属性
注:代码经过测试,确实可以修改properties文件中的属性,但是此属性在文件中的值是没有变化的,只是在项目运行的过程中,值发生了改变,
所以一旦停止项目,以前累计的值就会消失。所以此段代码只适合切换数据源之类,不适合做累计的功能。
==================================================================================
新建一个工具类,此工具类需要引用
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
/**
* 2017年10月23日下午10:20:49
*/
package com.jjmc.dcl.util;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
/**
*
* @author huangtao
* 2017年10月23日下午10:20:49
* dclTask
* @parameter
* TODO
*
*/
public class Config {
private static PropertiesConfiguration propConfig;
private static final Config CONFIG = new Config();
/**
* 自动保存
*/
private static boolean autoSave = true;
private Config() {
}
public static Config getInstance(String propertiesFile) {
//执行初始化
init(propertiesFile);
return CONFIG;
}
/**
* 初始化
*
* @param propertiesFile
* @throws ConfigurationException
* @see
*/
private static void init(String propertiesFile){
try {
propConfig = new PropertiesConfiguration(propertiesFile);
//自动重新加载
propConfig.setReloadingStrategy(new FileChangedReloadingStrategy());
//自动保存
propConfig.setAutoSave(autoSave);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根据Key获得对应的value
*
* @param key
* @return
* @see
*/
public Object getValue(String key) {
return propConfig.getProperty(key);
}
/**
* 设置属性
*
* @param key
* @param value
* @see
*/
public void setProperty(String key, String value) {
propConfig.setProperty(key, value);
}
}
=================================================================================================
测试类
Config cg = Config.getInstance("messageConfig/messageMinId.properties");
for(int i = 0;i<100;i++){
System.out.println("old mms.statusReport.minID="+cg.getValue("mms.statusReport.minID"));
cg.setProperty("mms.statusReport.minID", String.valueOf(i));
System.out.println("new mms.statusReport.minID="+cg.getValue("mms.statusReport.minID"));
}

浙公网安备 33010602011771号