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

📄 tanghanconfig.java

📁 J2EE eclipse 下开发数据库一个插件
💻 JAVA
字号:
/*
 * Created on 2003-4-14
 *
 */
package com.tanghan.util;

import java.util.HashMap;
import java.util.ResourceBundle;
import org.apache.log4j.Logger;
import org.w3c.dom.*;


import com.tanghan.util.Log;
import com.tanghan.util.config.Config;

//import org.apache.xerces.dom.*;
/**
 * TODO 修改Config类的调用方式, 修改循环调用的问题
 * 
 * @author Jerry Tang
 * @version v0.1.0
 * @copyright  (C) 2003 Tanghan工作组
 *  */
public class TanghanConfig {
	
	/**系统变量: Tanghan Lib的根目录*/
	public static final String TANGHANLIBHOME = "TanghanLib.Home";	

	/**系统变量: Tanghan Lib的配置文件*/
	public static final String TANGHANLIBCONFIGEFILE = "TanghanLib.ConfigFile";
	
	/**日志*/
	private static Logger log = Log.getInstanse().getLogger("TanghanConfig"); 
	
	/**自身引用
	 * 在继承TanghanConfig时必须通过
	 * */
	private static TanghanConfig configInstance=null;
	
	/**TanghanLib环境变量存储的类*/
	private static HashMap properties=new HashMap();
	
	/**配置文件路径*/
	private static String configFileName = "";
	
	/**系统目录分割苻*/
	private static String SEPARATOR=(System.getProperties()).getProperty("file.separator");	
	
	/** Creates a new instance of TanghanConfig */
	private TanghanConfig() {
	}	
	/**
	 * 初始化数据
	 * */
	private synchronized static void initInstance(){
		if(null == configInstance){
			configInstance=new TanghanConfig();
			log.info("Config properties....");
			//loadFilePath() ;
			loadProperties();	
			log.info("Config properties Done!") ;
		}
	}
	/**
	 * 重新载入配置文件
	 * */
	public static void reload(){
		configInstance = null;
		log.info("Config released OK!");
		initInstance();
	}
	/**
	 * 得到环境变量
	 * @param pParam 环境变量
	 * @return 环境变量的值,如果没有则为null
	 * */
	public static String getProperty(String pParam){
		if(configInstance==null){
			initInstance();            
		}
		String value=(String)properties.get(pParam) ;
		return value;
	}
	/**
	 * 改变环境变量值
	 * @param pParam 环境变量
	 * @param value 环境变量的值
	 * */
	public static void setProperty(String sysParam, String value){
		if(configInstance==null){
			initInstance();            
		}
		properties.put(sysParam,value);
	}
		
	/**
	 * 根据根目录构造配置文件的目录
	 * */
	private static void loadFilePath(){
	   String home=DealSystem.getClassRootPath(TanghanConfig.class) ;
	   log.info(TANGHANLIBHOME+":"+home);
	   configFileName = home;
	   properties.put(TANGHANLIBHOME,home);
	   String configFile=configFileName+"config"+SEPARATOR+"Config.xml";
	   properties.put(TANGHANLIBCONFIGEFILE,configFile) ;
	   log.info(TANGHANLIBCONFIGEFILE+":"+configFile);
	}
	/**
	 * 载入配置文件
	 * */
	private static void loadProperties(){
		Document doc = null;
		try{
			//doc =XMLUtility.xml2Document(TanghanConfig.getProperty(TANGHANLIBCONFIGEFILE)) ;
			doc =  XMLUtility.xml2Document(TanghanConfig.class.getClassLoader().getResourceAsStream("config"+SEPARATOR+"Config.xml"));
		}catch(Exception ex){
			log.error(ex.getMessage(),ex);
		}
		Element rootElement=doc.getDocumentElement() ;
		loadConfig(rootElement);
	}    	
	/**
	  * 载入各种自定义的配置文件类
	  * @param rootElement 配置文件根目录Dom
	  * */
	 private static void loadConfig(Element rootElement){
		 Element configClassElement=(Element)(rootElement.getElementsByTagName("Config").item(0));
		 try{
			 NodeList nodelist=configClassElement.getElementsByTagName("ConfigClass");
			 String className = null;
			 for(int i=0;i<nodelist.getLength();i++){
				 className = null;
				 try{
					 className = XMLUtility.getNodeAttr(configClassElement,"ConfigClass","Value",i);
					 if(className==null)
						 break;
					 Config obj = null;
					 obj =  (Config)Class.forName(className.trim()).newInstance();
					 //根据配置类重的rootName得到相应的xml相对根结点
					 if(DealString.equals(obj.getRootName(),"")){
						obj.dealConfigInfo(properties,rootElement);
					 }else{
						Element elem=(Element)(rootElement.getElementsByTagName(DealString.trim(obj.getRootName())).item(0));
						obj.dealConfigInfo(properties,elem);
					 }
				 }catch(Exception e){
					 log.error("Load"+className+"配置类时发生错误",e);
				 }
			 }
		 }catch(Exception e){
			log.error("LoadConfig时发生错误",e);
		 }
	 }	
	 public static void setTanghanExceptionErrorCodes(ResourceBundle res){
	 	
	 }
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -