注:代码经过测试,确实可以修改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")); }