ehcache.xml配置文件内容如下 :
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tmpdir" />
<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
<cache name="myCache" maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" />
</ehcache>
工具类内容如下 :
public enum EHCache {
CACHE_MY("myCache");
private CacheManager cacheManager=new CacheManager();
private Cache cache;
private String cachename;
private EHCache(String chchename){
this.cache=(Cache) cacheManager.getCache(chchename);
}
public Cache getCache() {
return cache;
}
public void setCache(Cache cache) {
this.cache = cache;
}
public String getCachename() {
return cachename;
}
public void setCachename(String cachename) {
this.cachename = cachename;
}
/*
* 通过名称从缓存中获取数据
*/
public Object getCacheElement(String cacheKey) throws Exception {
net.sf.ehcache.Element e = (Element) cache.get(cacheKey);
if (e == null) {
return null;
}
return e.getValue();
}
/*
* 将对象添加到缓存中
*/
public void addToCache(String cacheKey, Object result) throws Exception {
Element element = new Element(cacheKey, result);
cache.put(element);
}
/**
* 清除缓存
* @param cachKey
* @return
*/
public boolean removeCacheElement(String cachKey){
net.sf.ehcache.Element e = (Element) cache.get(cachKey);
boolean sign=false;
if(e!=null){
sign= cache.remove(cachKey);
}else{
sign=true;
}
return sign;
}
}
测试类:
public class Test5 {
public static void main(String[] args){
EHCache ehCache = EHCache.CACHE_MY;
JSONObject obj = new JSONObject();
obj.put("name","lsz");
try {
ehCache.addToCache("cache_json",obj);
ehCache.addToCache("cache_str","q jkdsksllll");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String getobj = ehCache.getCacheElement("cache_json");
System.out.println("getobj")
}
}