EhCache缓存框架(4)-使用单列模式封装Ehcache常用方法

来源:互联网 发布:考古知 编辑:程序博客网 时间:2024/06/12 00:39

简单粗暴,直接贴代码


Ehcache工具类:

package com.spf.common.utils;import net.sf.ehcache.Cache;import net.sf.ehcache.CacheManager;import net.sf.ehcache.Element;/** *  EhCache 缓存框架 * @Auther SPF * @Create 2017/8/20 */public class EhCacheUtil {    private static EhCacheUtil cacheUtil = null;    private static Cache cache = null;    private static CacheManager manager = null;    public EhCacheUtil(String url,String str){        manager = CacheManager.create(url);        cache = manager.getCache(str);    }    public static EhCacheUtil getInstance(String url,String str){        if (cacheUtil == null) {            cacheUtil = new EhCacheUtil(url,str);        }        return cacheUtil;    }    /**     * 向 Ehcache 中添加数据     * @param key key值     * @param obj value值     */    public void put(String key,Object obj) throws Exception {       put(key,obj,false);    }    /**     * 不覆盖添加数据时是如果key值存在则抛出异常     * @param key key值     * @param obj value值     * @param isCover 是否覆盖添加数据     */    public void put(String key,Object obj,boolean isCover) throws Exception {        if (isCover == true) {            if (isExist(key)) {                throw new Exception("Ehcache中该key值数已存在");            }        }        Element element = new Element(key,obj);        cache.put(element);        cache.flush();    }    /**     * 从 Ehcache 根据key值获取数据     * @param key key值     * @return obj     */    public Object get(String key) {        Object obj = null;        try {            obj = cache.get(key).getObjectValue();        }catch (NullPointerException e) {            throw new NullPointerException("Ehcache中不存在该值的数据!");        } finally {            manager.shutdown();        }        return obj;    }    /**     * 从 Ehcache 根据key值删除数据     * @param key     */    public boolean remove(String key) {        boolean flag = cache.remove(key);        cache.flush();        return flag;    }    /**     * 根据key值判断是否存在     * @param key key值     * @return boolean值     */    public boolean isExist(String key){        if (cache.get(key) != null) {            return true;        }        return false;    }    public void close(){        manager.shutdown();    }}

测试类:

public class EhCacheTest {    public static void main(String[] args) {        EhCacheUtil cacheUtil = EhCacheUtil.getInstance("./dubbo-common/src/main/resources/ehcache.xml","a");        try {            cacheUtil.put("sf","Ehcache测试数据一",true);        } catch (Exception e) {            e.printStackTrace();        }        //Object s = cacheUtil.get("sf");        //System.out.println(s);        //boolean flag = cacheUtil.remove("sf");        //System.out.println(flag);       // System.out.println(s);        cacheUtil.close();    }}

原创粉丝点击