EhCache缓存框架(4)-使用单列模式封装Ehcache常用方法
2017-08-20 21:20
681 查看
简单粗暴,直接贴代码
Ehcache工具类:
测试类:
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(); } }
相关文章推荐
- IT 缓存框架:足迹第二十三步ehcache、memcache、redis数据库的使用(什么是大项目常用的缓存处理方案)
- Spring Boot 简单使用EhCache缓存框架的方法
- Thinkphp框架中使用memcache缓存的方法
- android 开发使用图片异步缓存框架关于图片请求路径不变情况下的解决方法
- Yii框架调用缓存使用方法
- Java第四周常用类与集合框架上机实验二学会Math类常用方法使用
- PHP中封装MEMCACHE常用方法基于YII框架下
- Signaltap使用transitional模式. FPGA封装的对比方法
- android轻量级开源缓存框架——ASimpleCache(ACache)源码分析(封装好了一个工具类供大家使用)
- spring+springMVC+JPA配置详解(使用缓存框架ehcache)
- Thinkphp框架中使用memcache缓存的方法
- openinview模式下hibernate方法框架的底层方法使用
- springMVC教程(六)缓存框架Ehcache使用详解
- IOS对象关系映射(ORM)之coreData框架的学习——(三)对使用步骤进行方法封装
- Java第四周常用类与集合框架上机实验三学会String类常用方法使用
- Thinkphp框架中使用memcache缓存的方法
- Thinkphp框架中使用memcache缓存的方法
- 二级缓存ehcache的使用方法
- Java第四周常用类与集合框架上机实验四学会包装类常用方法使用
- Yii框架自带缓存的使用方法