engineerのブログ
Amebaでブログを始めよう!

XMLConfiguration staticで使用する方法③

XMLConfiguration staticで使用する方法③


①XMLConfigurationの準備をする。

②XMLConfigurationをloadするservletを用意する。

③web.xmlで起動時に読み込む設定を行う。


web.xmlを追記する

<servlet>
<servlet-name>ConfigurationServlet</servlet-name>
<servlet-class>jp.test.ConfigurationServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>ConfigurationServlet</servlet-name>
<url-pattern>/servlet/ConfigurationServlet</url-pattern>
</servlet-mapping>

XMLConfiguration staticで使用する方法②

XMLConfiguration staticで使用する方法②


①XMLConfigurationの準備をする。

②XMLConfigurationをloadするservletを用意する。

③web.xmlで起動時に読み込む設定を行う。



package jp.test;

import java.io.File;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;


import org.apache.log4j.Logger;

public class ConfigurationServlet extends HttpServlet{

/** ログ */
private static Logger log = Logger.getLogger(ConfigurationServlet.class);

private static String config_file = "/WEB-INF/config/configuration.xml";

/**
* 初期化セット
*/
public void init(ServletConfig servletConfig) throws ServletException
{
super.init(servletConfig);

// XmlConfigurationの読み込み
try {
log.info("SET CommonConfiguration");
if (!(new File(config_file)).exists()){
config_file = servletConfig.getServletContext().getRealPath(config_file);
}
XmlConfiguration.load(config_file);

} catch (Exception e) {
log.fatal(e);
}

}
}

XMLConfiguration staticで使用する方法①

XMLConfiguration staticで使用する方法①


①XMLConfigurationの準備をする。

②XMLConfigurationをloadするservletを用意する。

③web.xmlで起動時に読み込む設定を行う。



必須jar
common-configuration.jar
common-lang.jar(上記に対して必須)

任意jar
log4j.jar


package jp.test;

import org.apache.commons.configuration.XMLConfiguration;
import org.apache.log4j.Logger;

public class XmlConfiguration {

private static Logger log = Logger.getLogger(XmlConfiguration.class);
/** ロック */
private static final byte[] lock = new byte[0];
/** 設定ファイル文字コード */
private static final String DEFAULT_ENCODE = "UTF-8";
/** configuration */
private static XMLConfiguration config = new XMLConfiguration();

/**
* 設定ファイルの読み込み
*/
public static void load(String filePath) throws Exception
{
synchronized (lock){
config.setFileName(filePath);
try {
config.setEncoding(DEFAULT_ENCODE);
config.load();
} catch (Exception e) {
log.fatal(e);
throw e;
}
}
}

/**
* 再読み込み
*/
public static void reload() throws Exception
{
synchronized (lock) {
try {
config.reload();

} catch (Exception e) {
log.error(e);
throw e;
}
}
}

public static String getString(String key){
return config.getString(key);
}

public static int getInt(String key){
return config.getInt(key);
}

public static long getLong(String key){
return config.getLong(key);
}

public static boolean getBoolean(String key){
return config.getBoolean(key);
}

public static double getDouble(String key){
return config.getDouble(key);
}

public static float getFloat(String key){
return config.getFloat(key);
}

public static boolean exists(String key){
return
config.containsKey(key) &&
config.getString(key).trim().length() > 0;
}

}