⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 examconfigutil.java

📁 asp制作的在线考试系统
💻 JAVA
字号:
package cn.hxex.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", "cn.hxex.exam.config.ExamConfig");
		digester.addSetProperties("config");

		// 初始化DAOConfig对象
		digester.addObjectCreate("config/daos/dao",
				"cn.hxex.exam.config.DAOConfig");
		digester.addSetProperties("config/daos/dao");
		digester.addSetNext("config/daos/dao", "addDAO",
				"cn.hxex.exam.config.DAOConfig");

		// 初始化CacheConfig对象
		digester.addObjectCreate("config/cache",
				"cn.hxex.exam.config.CacheConfig");
		digester.addSetProperties("config/cache");
		digester.addSetNext("config/cache", "addCache",
				"cn.hxex.exam.config.CacheConfig");

		// 设置CacheConfig对象的配置参数
		digester.addObjectCreate("config/cache/property",
				"cn.hxex.exam.config.Property");
		digester.addSetProperties("config/cache/property");
		digester.addSetNext("config/cache/property", "addProperty",
				"cn.hxex.exam.config.Property");

		// 初始化SysConfig对象
		digester.addObjectCreate("config/sysconfig",
				"cn.hxex.exam.config.SysConfig");
		digester.addSetProperties("config/cache");
		digester.addSetNext("config/sysconfig", "addSysConfig",
				"cn.hxex.exam.config.SysConfig");

		// 设置SysConfig对象的配置参数
		digester.addObjectCreate("config/sysconfig/property",
				"cn.hxex.exam.config.Property");
		digester.addSetProperties("config/sysconfig/property");
		digester.addSetNext("config/sysconfig/property", "addProperty",
				"cn.hxex.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 + -