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 + -
显示快捷键?