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(); }}
阅读全文
1 0
- EhCache缓存框架(4)-使用单列模式封装Ehcache常用方法
- EhCache缓存框架(3)-EhCache 常用配置项详解
- EhCache缓存框架(1)-EhCache的简单使用
- 【EhCache】Java缓存框架使用EhCache结合Spring AOP
- 【EhCache】Java缓存框架使用EhCache结合Spring AOP
- 【EhCache】Java缓存框架使用EhCache结合Spring AOP
- EhCache缓存框架(2)-EhCache持久化
- ehcache-----java缓存框架
- EHcache缓存框架详解
- Ehcache缓存框架
- Ehcache缓存框架详解
- EhCache缓存框架简介
- EhCache缓存框架
- hibernate中使用ehcache缓存框架
- #MyBatis中使用Ehcache缓存框架
- Ehcache缓存框架入门级使用
- EhCache常用缓存配置
- Ehcache缓存模式
- 树状数组--逆序数--Japan
- 什么是面向对象的类式继承?
- FPGA跨时钟域处理的三大方法
- Linux目录处理命令
- strcmp strcpy
- EhCache缓存框架(4)-使用单列模式封装Ehcache常用方法
- 签名,验签的理解
- 跟金角大王学习python笔记(day1)
- DBSCAN算法学习小结
- 二叉树后序遍历的非递归实现方法
- Irrlicht 源码学习笔记 【Color.h】
- 三层结构有感
- FPGA跨时钟域设计的一点总结
- 模块化开发的时候,sqlsession如何配置多个typeAliasesPackage,mapperLocations