使用Commons Configuration可以很好的管理我们的配置文件的读写,官网:http://commons.apache.org/configuration/
它支持对配置文件的读取,保存,运行期加载,操作非常方便。下面简单的一下代码示例一下,具体的其他操作文档可以去官方找到:
需要用到commons-lang,commons-collections,commons-logging,log4j jar包
public
class
Test
{
public static void main(String[] args) throws ConfigurationException, InterruptedException {
xmlLoadTest();
fileLoadTest();
saveTest();
runtimeReload();
}
// xml文件
public static void xmlLoadTest() throws ConfigurationException {
String file = " test1.xml " ;
XMLConfiguration config = new XMLConfiguration(Test. class .getResource(file));
System.out.println(config.getString( " conf.url " ));
System.out.println(config.getDouble( " conf.money " ));
}
// properties文件
private static void fileLoadTest() throws ConfigurationException {
String file = " test2.properties " ;
PropertiesConfiguration config = new PropertiesConfiguration(Test. class .getResource(file));
System.out.println(config.getString( " url " ));
}
// 保存到文件
public static void saveTest() throws ConfigurationException {
String file = " test2.properties " ;
PropertiesConfiguration config = new PropertiesConfiguration(Test. class .getResource(file));
// 设置自动保存 或显示调用 config.save();
config.setProperty( " colors.background " , " #000000 " );
config.setAutoSave( true );
}
// 运行期参数修改加载
public static void runtimeReload() throws ConfigurationException, InterruptedException {
String file = " test2.properties " ;
PropertiesConfiguration config = new PropertiesConfiguration(Test. class .getResource(file));
config.setReloadingStrategy( new FileChangedReloadingStrategy());
System.out.println(config.getString( " url " ));
Thread.sleep( 10000 ); // 在休眠期间,手动修改文件里面的url值后观察日志情况
System.out.println(config.getString( " url " ));
}
}
public static void main(String[] args) throws ConfigurationException, InterruptedException {
xmlLoadTest();
fileLoadTest();
saveTest();
runtimeReload();
}
// xml文件
public static void xmlLoadTest() throws ConfigurationException {
String file = " test1.xml " ;
XMLConfiguration config = new XMLConfiguration(Test. class .getResource(file));
System.out.println(config.getString( " conf.url " ));
System.out.println(config.getDouble( " conf.money " ));
}
// properties文件
private static void fileLoadTest() throws ConfigurationException {
String file = " test2.properties " ;
PropertiesConfiguration config = new PropertiesConfiguration(Test. class .getResource(file));
System.out.println(config.getString( " url " ));
}
// 保存到文件
public static void saveTest() throws ConfigurationException {
String file = " test2.properties " ;
PropertiesConfiguration config = new PropertiesConfiguration(Test. class .getResource(file));
// 设置自动保存 或显示调用 config.save();
config.setProperty( " colors.background " , " #000000 " );
config.setAutoSave( true );
}
// 运行期参数修改加载
public static void runtimeReload() throws ConfigurationException, InterruptedException {
String file = " test2.properties " ;
PropertiesConfiguration config = new PropertiesConfiguration(Test. class .getResource(file));
config.setReloadingStrategy( new FileChangedReloadingStrategy());
System.out.println(config.getString( " url " ));
Thread.sleep( 10000 ); // 在休眠期间,手动修改文件里面的url值后观察日志情况
System.out.println(config.getString( " url " ));
}
}
Configuration 的参数可能来自下面的资源:
Properties files XML documents,Property list files (.plist),JNDI,JDBC Datasource,System properties, Applet parameters,Servlet parameters