Commons Configuration XMLConfigurationの値をMapにうつす方法
2008/01/09
commons
java
Commons Configuration - Java Configuration API
CommonsのConfigurationって好きなライブラリのひとつです。
アプリケーションのコンフィギュレーションで使わせてもらっています。
XMLConfigurationで設定した値をMapにして使いまわしたかったので調べてみました。
XMLConfigurationの値をMapにうつす方法
MapConfigurationを作成して、ConfigurationUtilsを使ってcopyします。
思ったより簡単にできる!!
サンプルコード
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.ConfigurationUtils;
import org.apache.commons.configuration.MapConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.tree.DefaultExpressionEngine;
public class Sample {
public static void main(String[] args) throws ConfigurationException {
XMLConfiguration xmlConfiguration = new XMLConfiguration();
// {
// DefaultExpressionEngine defaultExpressionEngine = new DefaultExpressionEngine();
// xmlConfiguration.setExpressionEngine(defaultExpressionEngine);
// }
xmlConfiguration.setProperty("aaa.bbb", "ok");
StringWriter writer = new StringWriter();
xmlConfiguration.save(writer);
System.out.println(xmlConfiguration.getString("aaa.bbb"));
Map map = new HashMap();
MapConfiguration mapConfiguration = new MapConfiguration(map);
ConfigurationUtils.copy(xmlConfiguration, mapConfiguration);
System.out.println(writer);
System.out.println(map);
}
}
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.ConfigurationUtils;
import org.apache.commons.configuration.MapConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.tree.DefaultExpressionEngine;
public class Sample {
public static void main(String[] args) throws ConfigurationException {
XMLConfiguration xmlConfiguration = new XMLConfiguration();
// {
// DefaultExpressionEngine defaultExpressionEngine = new DefaultExpressionEngine();
// xmlConfiguration.setExpressionEngine(defaultExpressionEngine);
// }
xmlConfiguration.setProperty("aaa.bbb", "ok");
StringWriter writer = new StringWriter();
xmlConfiguration.save(writer);
System.out.println(xmlConfiguration.getString("aaa.bbb"));
Map map = new HashMap();
MapConfiguration mapConfiguration = new MapConfiguration(map);
ConfigurationUtils.copy(xmlConfiguration, mapConfiguration);
System.out.println(writer);
System.out.println(map);
}
}
結果
ok
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<aaa>
<bbb>ok</bbb>
</aaa>
</configuration>
{aaa.bbb=ok}
:
コメント書けるかテスト
コメントテスト2