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