-
@Cacheable
-
说明
- 主要针对可缓存的方法配置,如查找方法
- 先从缓存中读取,如果没有再调用方法获取数据,然后把数据添加到缓存中
-
参数
-
value
- 缓存的名称,在 spring 配置文件中定义,必须指定至少一个
-
key
- 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合
-
condition
- 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存
-
@CachePut
-
说明
- 应用到写数据的方法上,如新增/修改方法
- 调用方法时会自动把相应的数据放入缓存
-
参数
-
value
- 缓存的名称,在 spring 配置文件中定义,必须指定至少一个
-
key
- 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合
-
condition
- 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存
-
@CacheEvict
-
说明
- 主要针对移除数据的方法配置,如删除方法
- 调用方法时,根据一定的条件会从缓存中移除相应的数据
-
参数
-
value
- 缓存的名称,在 spring 配置文件中定义,必须指定至少一个
-
key
- 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合
-
condition
- 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存
-
allEntries
- 是否清空所有缓存内容,缺省为 false,如果指定为 true,则方法调用后将立即清空所有缓存
-
beforeInvocation
- 是否在方法执行前就清空,缺省为 false,如果指定为 true,则在方法还没有执行的时候就清空缓存,缺省情况下,如果方法执行抛出异常,则不会清空缓存