package com.ld.igds.util;
|
|
import com.bstek.bdf2.core.cache.ApplicationCache;
|
import com.bstek.bdf2.core.context.ContextHolder;
|
|
/**
|
* 采用BDF CACHE控制
|
* <p>
|
* 说明:所有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的对象,则进行覆盖,<br>
|
* 默认情况下,位于临时缓存中对象生命周期为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);
|
}
|
|
/**
|
* 从临时缓存当中获取一个被临时缓存对象,<br>
|
* 默认情况下,位于临时缓存中对象生命周期为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);
|
}
|
|
}
|