📄 config.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 + -