package com.ld.igds.util; import com.bstek.bdf2.core.cache.ApplicationCache; import com.bstek.bdf2.core.context.ContextHolder; /** * 采用BDF CACHE控制 *
* 说明:所有KEY要求默认以组织编码+KEY的形式,以便支持一键刷新当前组织下所有的缓存
*
* @author Andy
*/
public class CacheUtil {
public static final String KEY_LIST_BIZ_GROUP = "_KEY_LIST_BIZ_GROUP";
public static ApplicationCache getApplicationCache() {
return ContextHolder.getBean(ApplicationCache.BEAN_ID);
}
/**
* 调整KEY的值,添加组织编码
*
* @param key
* @param companyId
* @return
*/
public static String keyBuilder(String key, String companyId) {
if (null == companyId) companyId = ContextUtil.getDefaultCompanyId();
return companyId + "_" + key;
}
/**
* 从缓存当中移除一个对象
*
* @param key 要移除的对象的key值
*/
public static void removeCache(String key) {
getApplicationCache().removeCacheObject(key);
}
/**
* 将一个对象放入缓存当中,同时如果缓存当中有存在相同key的对象,则进行覆盖
*
* @param key 对象的key
* @param obj 具体对象
*/
public static void putCache(String key, Object obj) {
getApplicationCache().putCacheObject(key, obj);
}
/**
* 将一个对象放入临时缓存当中,同时如果缓存当中有存在相同key的对象,则进行覆盖,
* 默认情况下,位于临时缓存中对象生命周期为1800秒,也就是半小时
*
* @param key 对象的key
* @param obj 具体对象
*/
public static void putTemporaryCache(String key, Object obj) {
getApplicationCache().putTemporaryCacheObject(key, obj);
}
/**
* 从临时缓存当中移除一个对象
*
* @param key 要移除的对象的key值
*/
public static void removeTemporaryCache(String key) {
getApplicationCache().removeTemporaryCacheObject(key);
}
/**
* 根据指定的key,从缓存当中获取一个对象
*
* @param key 缓存当中对象的key值
* @return 返回缓存当中与给定key对应的对象值,如果对象不存在,就返回null
*/
public static Object getCache(String key) {
return getApplicationCache().getCacheObject(key);
}
/**
* 从临时缓存当中获取一个被临时缓存对象,
* 默认情况下,位于临时缓存中对象生命周期为1800秒,也就是半小时
*
* @param key 缓存当中对象的key值
* @return 返回缓存当中与给定key对应的对象值,如果对象不存在,就返回null
*/
public static Object getTemporaryCache(String key) {
return getApplicationCache().getTemporaryCacheObject(key);
}
/**
* 移除所有Key以keyStartWith变量开头的存储于缓存中的元素
*
* @param companyId 所有以该字符串开头的key
*/
public static void removeCacheByKeyStartWith(String companyId) {
getApplicationCache().removeCacheObjectsByKeyStartWith(companyId);
}
}