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

📄 config.java

📁 简易java框架开源论坛系统,简 易java框架开源论坛系统
💻 JAVA
字号:
package com.easyjf.cache;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import java.util.Set;
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import com.easyjf.cache.store.StorePolicy;

/**
 * 通过XML文件读取Cache配置文件,配置文件信息主要用于创建ICache对象
 * <easyjf-cache>
 * <cache name="cache名称" storePolicy="存诸策略" maxElements="最大元素" expiredInterval="最大超时" type="chche类" />
 * </easyjf-cache
 * 
 * @author 蔡世友
 * 
 */
public class Config {	
	private String fileName;
	private static Config singleton;
	private ICache defaultCache; 
	private Map caches = new HashMap();	
	public Config(String fileName)
	{		
		this.fileName=fileName;
	}
	private void init()
	{			
		Document doc=null;
		if(fileName!=null){
		SAXReader reader = new SAXReader();
		try{		
		//System.out.println(new File(fileName).getAbsolutePath());
		doc=reader.read(Config.class.getResourceAsStream(fileName));		
		}
		catch(Exception e)
		{
			System.out.println("配置文件错误:"+e);
			e.printStackTrace();
		}
		if(doc!=null)
		{
		 List list=doc.selectNodes("/easyjf-cache/cache");
		 if(list!=null)
		 {
			 for(int i=0;i<list.size();i++)
			 {
				 org.dom4j.Element el=(org.dom4j.Element)list.get(i);				 
				 String name=el.attributeValue("name");				
				 int storePolicy=StorePolicy.get(el.attributeValue("storePolicy"));
				 int maxElements=Integer.parseInt(el.attributeValue("maxElements"));
				 long expiredInterval=Long.parseLong(el.attributeValue("expiredInterval"));
				 ICache cache=new EasyCache(name,storePolicy,maxElements,expiredInterval);
				 if(i==0)this.defaultCache=cache;
				 caches.put(name,cache);
			 }
		 }			
		}
		}
	}
	public static Config getInstance(String fileName) {		
		if(singleton==null)
		{
			singleton=new Config(fileName);			
			singleton.init();			
		}
		return singleton;
	}

	public static Config getInstance() {
		if(singleton==null)
		{
			singleton=new Config("/easyjf-cache.xml");
			singleton.init();
		}
		return singleton;
	}

	public ICache getDefaultCache() {
		return defaultCache;
	}

	public ICache getCache(String name) {
		return (ICache) caches.get(name);
	}

	public Set getCacheKeySet() {
		return caches.keySet();
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
      Config.getInstance("/easyjf-cache.xml");   
      System.out.println(Config.getInstance().defaultCache.getName());
	}

}

⌨️ 快捷键说明

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