ws183
2025-04-28 b306d1106b915bb13fd7a02217ae9c65de2fd03d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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);
    }
 
}