注:代碼經過測試,確實可以修改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"));
}
