package cn.hxex.exam.config; import java.util.Hashtable; import cn.hxex.exam.exception.ExamException; public class ExamConfig ... { private Hashtable daos; public ExamConfig()...{ daos=new Hashtable(); } public void addDao(DAOConfig bean)...{ daos.put(bean.getId(), bean); } public DAOConfig getDAOConfig(String name)...{ DAOConfig config=(DAOConfig)daos.get(name); if(config==null)...{ throw new ExamException("couldn't find the bean:"+name); } return config; }} package cn.hxex.exam.config; import java.io.InputStream; import org.apache.commons.digester.Digester; public class ExamConfigUtil ... { public static final String DEFAULT_CONFIG_FILE="ExamConfig.xml"; public static final ExamConfig MESSAGE_CONFIG; static...{ 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/dao/dao", "addDao","cn.hxex.exam.config.DAOConfig"); //读取配置文件 ClassLoader classLoader=Thread.currentThread().getContextClassLoader(); InputStream in=classLoader.getResourceAsStream(DEFAULT_CONFIG_FILE); ExamConfig config=null; try ...{ if(in!=null)...{ config=(ExamConfig)digester.parse(in); } } catch (Exception e) ...{ e.printStackTrace(); } MESSAGE_CONFIG=config; } public static ExamConfig getConfig()...{ return ExamConfigUtil.MESSAGE_CONFIG; } public static DAOConfig getDAOConfig(String name)...{ return MESSAGE_CONFIG.getDAOConfig(name); } } < config > < daos > < dao id ="UserDAO" type ="cn.hxex.exam.dao.hibernate.UserDAOHibernate" /> < dao id ="TeacherDAO" type ="cn.hxex.exam.dao.hibernate.TeacherDAOHibernate" /> < dao id ="TestPaperDAO" type ="cn.hxex.exam.dao.hibernate.TestPaperDAOHibernate" /> < dao id ="RoleDAO" type ="cn.hxex.exam.dao.hibernate.RoleDAOHibernate" /> < dao id ="ClassesDAO" type ="cn.hxex.exam.dao.hibernate.ClassesDAOHibernate" /> < dao id ="StudentDAO" type ="cn.hxex.exam.dao.hibernate.StudentDAOHibernate" /> < dao id ="SelectQuestionDAO" type ="cn.hxex.exam.dao.hibernate.SelectQuestionDAOHibernate" /> < dao id ="YesNoQuestionDAO" type ="cn.hxex.exam.dao.hibernate.YesNoQuestionDAOHibernate" /> </ daos > < cache type ="cn.hxex.exam.cache.ehcache.EHCache" > < property name ="cachename" value ="cache" /> </ cache > < sysconfig > < property name ="superuser" value ="super,test" /> </ sysconfig > </ config >