二:自定义EhcacheUtils
1、CacheUtils
package cn.kexq.commons.utils;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class CacheUtils {
@Autowired
private CacheManager cacheManager;
/**
* 获取Ehcache对象
* @param cacheName
* @return
*/
public Cache getEhcache(String cacheName){
return cacheManager.getCache(cacheName);
}
/**
* 获取缓存
* @param cacheName
* @param key
* @return
*/
public Object getCache(String cacheName,String key){
Cache cache = cacheManager.getCache(cacheName);
if(cache==null){
return null;
}
return cache.get(key).getObjectValue();
}
/**
* 保存缓存--没有则创建一个
* @param cacheName
* @param key
* @param value
*/
public void putCache(String cacheName,String key,Object value){
Cache cache = cacheManager.getCache(cacheName);
if(cache==null){
System.out.println("cache is null...");
cacheManager.addCache(cacheName);
cache = cacheManager.getCache(cacheName);
cache.put(new Element(key,value));
}
cache.put(new Element(key,value));
}
/**
* 删除缓存
* @param cacheName
*/
public void removeCache(String cacheName,String key){
Cache cache = cacheManager.getCache(cacheName);
if(cache!=null){
cache.remove(key);
}else{
System.out.println("cache is null...");
}
}
/**
* 替换缓存
* @param cacheName
* @param key
* @param value
*/
public void replaceCache(String cacheName,String key,String value){
Cache cache = cacheManager.getCache(cacheName);
if(cache!=null){
cache.replace(new Element(key,value));
}
}
/**
* 关闭缓存
*/
public void shutDownCache(){
cacheManager.shutdown();
}
public CacheManager getCacheManager() {
return cacheManager;
}
public void setCacheManager(CacheManager cacheManager) {
this.cacheManager = cacheManager;
}
}
2、TestDemo
@Resource
private CacheUtils cacheUtils;
@RequestMapping("cacheTest.do")
public String getCache(){
try {
System.out.println("----------------getCache---------------");
User user = (User) cacheUtils.getCache("demoCache", "ke");
System.out.println(user);
//保存一个缓存数据,若该缓存不存在则创建一个新的缓存
cacheUtils.putCache("testCache", "kexq", "this is myCache test ...");
String s = (String)cacheUtils.getCache("testCache","kexq");
System.out.println(s);
//默认缓存配置参数为defaultCache
Cache cache = cacheUtils.getEhcache("testCache");
System.out.println(cache.getMemoryStoreEvictionPolicy().getName());;
System.out.println(cache);
}catch (Exception e){
e.printStackTrace();
}
return "index";
}