@Retention(value=RUNTIME) @Target(value=METHOD) @Inherited @Documented public @interface Cache
| 限定符和类型 | 可选元素和说明 |
|---|---|
int |
alarmTime
预警自动刷新时间(单位:秒),必须满足 0 < alarmTime < expire才有效 当缓存在alarmTime
时间内即将过期的话,会自动刷新缓存内容;
|
boolean |
alwaysCache
是否总是缓存(常驻内存)
默认不开启;
如果开启则缓存的有效期为永久,高频/低频/后台刷新异常则均不影响缓存的生命周期
|
boolean |
argumentsDeepcloneEnable
是否打开对参数进行深度复制,默认是true,是为了避免外部改变参数值。
|
boolean |
autoload
是否启用自动加载缓存, 缓存时间必须大于120秒时才有效
如果magic为true时,会强制关闭自动加载功能
|
String |
autoloadCondition
自动缓存的条件,可以为空,返回 true 或者 false,如果设置了此值,autoload() 就失效,例如:null !
|
String |
condition
缓存的条件表达式,可以为空,返回 true 或者 false,只有为 true 才进行缓存
|
ExCache[] |
exCache
扩展缓存
|
String |
expireExpression
动态获取缓存过期时间的表达式,当其执行结果为null或小于0的整数时,会使用expire
|
String |
hfield
设置哈希表中的字段,如果设置此项,则用哈希表进行存储,支持表达式
|
int |
lockExpire
分布式锁的缓存时间(单位:秒),在设置分布式锁的前提下,如果此项值大于0,则会使用分布式锁,如果小于等于0,则不会使用分布式锁。
|
Magic |
magic
魔术模式
|
boolean |
openLockDown
是否开启锁降级
默认不开启;
如果开启,当分布式锁抛异常时不使用分布式锁
|
CacheOpType |
opType
缓存的操作类型:默认是READ_WRITE,先缓存取数据,如果没有数据则从DAO中获取并写入缓存;如果是WRITE则从DAO取完数据后,写入缓存
|
long |
requestTimeout
当autoload为true时,缓存数据在 requestTimeout
秒之内没有使用了,就不进行自动加载数据,如果requestTimeout为0时,会一直自动加载
|
int |
waitTimeOut
并发等待时间(毫秒),等待正在DAO中加载数据的线程返回的等待时间。
|
public abstract String key
public abstract Magic magic
public abstract String expireExpression
public abstract int alarmTime
public abstract String hfield
public abstract boolean autoload
public abstract boolean alwaysCache
public abstract String autoloadCondition
public abstract long requestTimeout
public abstract String condition
public abstract CacheOpType opType
public abstract ExCache[] exCache
Copyright © 2020. All rights reserved.