public abstract class AbstractObjectCache<KEY_T,DATA_T>
extends net.eulerframework.common.base.log.LogSupport
| 限定符和类型 | 类和说明 |
|---|---|
static interface |
AbstractObjectCache.DataGetter<KEY_T,DATA_T> |
protected class |
AbstractObjectCache.DataStore<T> |
| 限定符和类型 | 字段和说明 |
|---|---|
protected ReentrantLock |
cacheWriteLock |
protected HashMap<KEY_T,AbstractObjectCache.DataStore<DATA_T>> |
dataMap |
| 构造器和说明 |
|---|
AbstractObjectCache() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
clean()
清理缓存,尝试删除所有过期缓存对象
|
boolean |
clear()
清除所有缓存对象,如果缓存已被其他线程锁定,则放弃清除,返回
false |
DATA_T |
get(KEY_T key)
查询缓存对象
|
DATA_T |
get(KEY_T key,
AbstractObjectCache.DataGetter<KEY_T,DATA_T> dataGetter)
查询缓存对象
在缓存对象不存在或已过期时,会调用
AbstractObjectCache.DataGetter.getData(Object)获取数据,并更新缓存池 |
abstract boolean |
isEnable()
判断缓存是否启用
|
abstract boolean |
isExpired(AbstractObjectCache.DataStore<DATA_T> storedData)
判断缓存对象是否过期
|
boolean |
put(KEY_T key,
DATA_T data)
向缓存添加缓存对象,如果缓存已被其他线程锁定,则放弃添加,返回
false |
boolean |
remove(KEY_T key)
删除缓存对象,如果缓存已被其他线程锁定,则放弃删除,返回
false |
protected final HashMap<KEY_T,AbstractObjectCache.DataStore<DATA_T>> dataMap
protected ReentrantLock cacheWriteLock
public boolean put(KEY_T key, DATA_T data)
falsekey - 缓存索引键值data - 缓存对象true;失败返回falsepublic boolean remove(KEY_T key)
falsekey - 缓存索引键值true;失败返回falsepublic boolean clear()
falsetrue;失败返回falsepublic void clean()
public DATA_T get(KEY_T key) throws DataNotFoundException
key - 缓存索引键值DataNotFoundException - 缓存对象不存在或已过期public DATA_T get(KEY_T key, AbstractObjectCache.DataGetter<KEY_T,DATA_T> dataGetter)
在缓存对象不存在或已过期时,会调用AbstractObjectCache.DataGetter.getData(Object)获取数据,并更新缓存池
key - 缓存对象键值dataGetter - 缓存对象不存在或已过期时的数据读取回调public abstract boolean isExpired(AbstractObjectCache.DataStore<DATA_T> storedData)
storedData - 待判断的缓存对象存储类true, 未过期返回falsepublic abstract boolean isEnable()
true, 未启用返回falseCopyright © 2017. All rights reserved.