rmcache.java
来自「cwbbs 云网论坛源码」· Java 代码 · 共 134 行
JAVA
134 行
package cn.js.fan.cache.jcs;import cn.js.fan.cache.jcs.ICache;import org.apache.jcs.JCS;import org.apache.jcs.access.exception.CacheException;import org.apache.log4j.Logger;import java.util.Iterator;import java.util.Vector;import java.io.Serializable;import cn.js.fan.web.Global;import com.cloudwebsoft.framework.util.LogUtil;import cn.js.fan.util.StrUtil;public class RMCache implements ICache { private static JCS cache; private static RMCache instance; boolean canCache = true; private static Object initLock = new Object(); String cacheName = "RMCache"; transient Logger logger; Vector cacheMgrs = new Vector(); public RMCache() { logger = Logger.getLogger(RMCache.class.getName()); ; canCache = Global.useCache; if (canCache) { try { if (cache == null) { cache = JCS.getInstance(cacheName); } } catch (CacheException e) { logger.error(e.getMessage()); } } } public static RMCache getInstance() { if (instance == null) { synchronized(initLock) { if (instance == null) instance = new RMCache(); } } return instance; } public Object get(Object name) { if (!canCache) return null; Object obj = cache.get(name); return obj; } public void put(Object name, Object obj) throws CacheException { if (!canCache) return; cache.put(name, obj); } public void remove(Object name) throws CacheException { cache.remove(name); } public void putInGroup(Object name, String groupName, Object value) throws CacheException { if (!canCache) return; cache.putInGroup(name, groupName, value); } public void remove(Object name, String groupName) throws CacheException { cache.remove(name, groupName); } public void invalidateGroup(String groupName) throws CacheException { cache.invalidateGroup(groupName); java.util.Set set = cache.getGroupKeys(groupName); Iterator ir = set.iterator(); Object obj = null; while (ir.hasNext()) { obj = ir.next(); remove(obj, groupName); } } public Object getFromGroup(Object name, String group) throws CacheException { if (!canCache) return null; Object obj = cache.getFromGroup(name, group); return obj; } public void setCanCache(boolean b) { this.canCache = b; } public boolean getCanCache() { return this.canCache; } public void clear() throws CacheException { if (canCache) cache.clear(); } public void timer() { Iterator ir = cacheMgrs.iterator(); while (ir.hasNext()) { ICacheMgr icm = (ICacheMgr) ir.next(); icm.timer(); } } public synchronized void regist(ICacheMgr icm) { cacheMgrs.addElement(icm); } public Vector getCacheMgrs() { return cacheMgrs; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?