Ehcache学习笔记(2)--自定义ehcache工具类

二:自定义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";
    }

猜你喜欢

转载自blog.csdn.net/cccp_2009/article/details/82803918
今日推荐