package com.zhubaje.api.workflow.ehcache;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element; import org.springframework.beans.factory.DisposableBean; /**
* 基本缓存支持类 <b>description:</b><br/>
* <b>createtime:</b>2013-5-10 上午11:41:47<br/>
* <b>remark:</b><br/>
*
* @version 1.0.0<br/>
*
*/ @SuppressWarnings("unchecked")
public class EhCacheBean<K extends Serializable, V> implements ICache<K, V>,
DisposableBean { protected boolean useCache = true;
protected CacheManager cacheManager; public CacheManager getCacheManager() {
return cacheManager;
} public void setCacheManager(CacheManager cacheManager) {
this.cacheManager = cacheManager;
} protected Cache cache; @Override
public void put(K k, V v) {
if(useCache){
cache.put(new Element(k, v));
} } @Override
public V get(K key) {
if(!useCache){
return null;
}
if (!cache.isKeyInCache(key)) {
return null;
}
return (V) cache.get(key).getObjectValue();
} @Override
public List<K> keys() {
return cache.getKeys();
} @Override
public List<V> values() {
List<K> keys = cache.getKeys();
List<V> result = new ArrayList<V>(keys.size());
for (Iterator<K> itKey = keys.iterator(); itKey.hasNext();) {
result.add((V)cache.get(itKey.next()).getObjectValue());
}
return result;
} @Override
public V remove(K key) {
if (cache.isKeyInCache(key)) {
Object obj = cache.get(key).getObjectValue();
cache.remove(key);
return (V) obj;
}
return null;
} public Cache getCache() {
return cache;
} public void setCache(Cache cache) {
this.cache = cache;
} @Override
public void destroy() throws Exception {
synchronized (cacheManager) {
if (null != cacheManager) {
cacheManager.shutdown();
}
}
} }

EHCache 实现通用类 CacheManager的更多相关文章

  1. poi导出excel通用类

    一.关键的通用类public class PoiExportUtils {    private static HSSFWorkbook workBook; public PoiExportUtils ...

  2. NPOI MVC 模型导出Excel通用类

    通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...

  3. MVC NPOI Linq导出Excel通用类

    之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...

  4. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  5. mongdo通用类(C#版)

    日前从公司离职,很快,还没休息就步入了现在的公司,开始跟着公司的脚步走. 公司的项目基本都是大数据的,所以在数据库上大部分都是使用Mongodb和Redis,基本都是Nosql型的数据库为主.以前自己 ...

  6. 我写的一个ExcelHelper通用类,可用于读取或生成数据

    读取或生成EXCEL数据的方法有很多,一般常见的有: 1.通过OFFICE EXCEL组件,优点:读取与生成EXCEL文件方便,缺点:服务器上必须安装OFFICE软件,且进程无法及时释放 2.通过第三 ...

  7. DataTable转List<Model>通用类

    /// <summary> /// DataTable转List<Model>通用类[实体转换辅助类] /// </summary> public class Mo ...

  8. Memcached通用类(基于enyim.com Memcached Client)

    一.如果用官方提供的方法,在web.config里面配置好了各个参数和服务器IP.如下图: <?xml version="1.0"?> <configuratio ...

  9. Memcached通用类(基于Memcached Client Library)

    分享下自己编写的Memcached通用类.欢迎大家帮忙指点下哈~ 使用的是.NET memcached client library 客户端+Memcached Providers using Sys ...

随机推荐

  1. BI中PowerDesigner建模

    PowerDesigner下载: http://pan.baidu.com/share/link?shareid=296749&uk=1479845243

  2. CF 335B - Palindrome 区间DP

    335B - Palindrome 题目: 给出一个字符串(均有小写字母组成),如果有长度为100的回文子串,输出该子串.否则输出最长的回文子串. 分析: 虽然输入串的长度比较长,但是如果存在单个字母 ...

  3. Matlab之文件读写

    读文件:  (0)自己添加 你可以将txt的一些文本数据直接拷贝到matlab窗口,然后保存为mat文件,下次就可以直接采用load函数了. (1)Load load 从Matlab的数据文件.mat ...

  4. SourceTree基本操作

    下载地址:https://www.sourcetreeapp.com 1.从克隆远程仓库 2.填写git地址 3.克隆成功后会来点如下界面,点击testGitHub 4.scourceTree管理界面 ...

  5. DWZ LookUp Suggest 教程

    单个查找带回 jsp 代码 lookup.jsp <%@ page language="java" contentType="text/html; charset= ...

  6. 北大ACM(POJ1006-Biorhythms)

    Question:http://poj.org/problem?id=1006 问题点:孙子定理 Memory: 248K Time: 0MS Language: C++ Result: Accept ...

  7. php nginx fastdfs 下载文件重命名

    其实fdfs可以传入一个filename参数,指定文件名.. M00/00/00/fwAAAVGMateAafjTAAAABBW-xbM368.txt?filename=test.txt 这样下载时用 ...

  8. NSString和NSArray平时练习总结

    /*************************字符串练习****************************/ //创建字符串 //1.快速创建 NSString *str1 = @&quo ...

  9. iOS中-Qutarz2D详解及使用

    在iOS中Qutarz2D 详解及使用 (一)初识 介绍 Quartz 2D是二维绘图引擎. 能完成的工作有: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成 ...

  10. python简单爬虫编写

    1.主要学习这程序的编写思路 a.读取解释网站 b.找到相关页 c.找到图片链接的元素 d.保存图片到文件夹 ..... 将每一个步骤都分解出来,然后用函数去实现,代码易读性高. ##代码尽快运行时会 ...