一定记得在数据更新后及时刷新缓存。

# 方法缓存：

在方法上使用注解@WeaverCacheComInfo，同时在缓存所在类上添加@AopClass注解即可对方法返回进行缓存（不使用AopClass会在懒加载的情况下缓存失效），注解相关属性：

cacheKey：缓存key，建议以功能类型（维护在com.weaver.ebuilder.form.common.cache.CacheKeyPrefixEnum）+业务id命名，方便统一管理，支持SPEL语法。

index：缓存index，建议以方法名称+参数值命名，方便对不同入参的方法缓存不同的值，支持SPEL语法。

cacheModule：缓存模块，一般使用常量EbuilderFormKey.Ebuilder\_MODULE，即” EBUILDER\_FORM”

expireTime:缓存过期时间，一般配合timeUnit时间单位使用，不填则默认一个月。

depict：缓存描述。

allowNullValues：是否将null值存入缓存（控制redis中是否缓存空对象，注意开启会消耗redis的占用空间）。

[图片附件未整合: ../_assets/196723888955064320/001-66b06a7ab4.png]

注意：Dao在spel拿不到参数的真实名称，需要使用p+参数索引获得参数值，如p0,p1。

[图片附件未整合: ../_assets/196723888955064320/002-7702680a8a.png]

SPEL文档参考：[https://docs.spring.io/spring-framework/reference/core/expressions.html](https://docs.spring.io/spring-framework/reference/core/expressions.html)

# 缓存客户端：

尽量使用封装的com.weaver.ebuilder.form.common.cache.EbCache，不要直接使用BaseCache。
