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(); } } } }
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
