需要Java 7,Apache Commons日志记录,Apache Commons lang(v2.6)和Apache Commons Configuration:
package corejava.reloadTest;import org.apache.commons.configuration.ConfigurationException;import org.apache.commons.configuration.PropertiesConfiguration;import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;public class MyApplicationProperties { private static PropertiesConfiguration configuration = null; static { try { configuration = new PropertiesConfiguration("test.properties"); } catch (ConfigurationException e) { e.printStackTrace(); } configuration.setReloadingStrategy(new FileChangedReloadingStrategy()); } public static synchronized String getProperty(final String key) { return (String) configuration.getProperty(key); }}并使用以下命令进行测试:
package corejava.reloadTest;public class TestReloading { public static void main(String[] args) { while (true) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(MyApplicationProperties.getProperty("key")); } }}更改test.properties时的输出是这样的(test.props的原始内容为key = value,后来在程序执行中更改为key = value1):
valuevaluevaluevaluevalueJan 17, 2015 2:05:26 PM org.apache.commons.configuration.PropertiesConfiguration reloadINFO: Reloading configuration. URL is file:/D:/tools/workspace /AutoReloadConfigUsingApacheCommons/resources/test.propertiesvalue1value1value1



