📄 examconfigutil.java
字号:
package com.qrsx.exam.config;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.digester.Digester;
import org.xml.sax.SAXException;
/**
* 用于处理系统配置的工具类 它的作用是解析配置文件,生成配置对象
*
* @author galaxy
*
*/
public class ExamConfigUtil {
// 缺省配置文件的名称
public static final String DEFAULT_CONFI_FILE = "ExamConfig.xml";
// 配置对象的实例
public static final ExamConfig MESSAGE_CONFIG;
static {
// 创建Digester对象的实例
Digester digester = new Digester();
digester.setValidating(false);
// 初始化根配置对象
digester.addObjectCreate("config", "com.qrsx.exam.config.ExamConfig");
digester.addSetProperties("config");
// 初始化DAOConfig对象
digester.addObjectCreate("config/daos/dao",
"com.qrsx.exam.config.DAOConfig");
digester.addSetProperties("config/daos/dao");
digester.addSetNext("config/daos/dao", "addDAO",
"com.qrsx.exam.config.DAOConfig");
// 初始化CacheConfig对象
digester.addObjectCreate("config/cache",
"com.qrsx.exam.config.CacheConfig");
digester.addSetProperties("config/cache");
digester.addSetNext("config/cache", "addCache",
"com.qrsx.exam.config.CacheConfig");
// 设置CacheConfig对象的配置参数
digester.addObjectCreate("config/cache/property",
"com.qrsx.exam.config.Property");
digester.addSetProperties("config/cache/property");
digester.addSetNext("config/cache/property", "addProperty",
"com.qrsx.exam.config.Property");
// 初始化SysConfig对象
digester.addObjectCreate("config/sysconfig",
"com.qrsx.exam.config.SysConfig");
digester.addSetProperties("config/cache");
digester.addSetNext("config/sysconfig", "addSysConfig",
"com.qrsx.exam.config.SysConfig");
// 设置SysConfig对象的配置参数
digester.addObjectCreate("config/sysconfig/property",
"com.qrsx.exam.config.Property");
digester.addSetProperties("config/sysconfig/property");
digester.addSetNext("config/sysconfig/property", "addProperty",
"com.qrsx.exam.config.Property");
// 读取配置文件
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
InputStream in = classLoader.getResourceAsStream(DEFAULT_CONFI_FILE);
ExamConfig config = null;
try {
// 解析配置文件,生成根配置对象
if (in != null)
config = (ExamConfig) digester.parse(in);
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
MESSAGE_CONFIG = config;
}
/**
* 读取根配置对象
*
* @return 根配置对象
*/
public static ExamConfig getConfig() {
return ExamConfigUtil.MESSAGE_CONFIG;
}
/**
* 读取DAO配置对象
*
* @param name
* DAO接口的标识符
* @return DAO的配置对象
*/
public static DAOConfig getDAOConfig(String name) {
return MESSAGE_CONFIG.getDAOConfig(name);
}
/**
* 读取Cache的配置对象
*
* @return Cache的配置对象
*/
public static CacheConfig getCacheConfig() {
return MESSAGE_CONFIG.getCache();
}
/**
* 读取系统参数的值
*
* @param name
* 系统参数的名称
* @return 系统参数的配置值
*/
public static String getSysConfigValue(String name) {
return MESSAGE_CONFIG.getConfigValue(name);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -