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

本文介绍了一个自定义的Ehcache缓存工具类CacheUtils,用于简化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";
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值