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

📄 examconfigutil.java

📁 java网上考试系统
💻 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 + -