SpringBoot 缓存之常用注解

用户头像
hepingfly
关注
发布于: 2020 年 09 月 05 日
SpringBoot 缓存之常用注解

一、@CachePut 注解使用

1)、注解使用说明

标识了这个注解就会既调用方法,又更新缓存数据。主要应用场景就是:修改了数据库的某个数据,同时更新缓存。



2)、注解使用注意事项

需要注意 @CachePut @Cacheable 这两个注解的运行时机是不同的:

  • @Cacheable 是在调用方法之前先去缓存里面看有没有指定 key 的数据,如果有直接用缓存,没有才去调用方法。

  • @CachePut 是先调用方法,调用完方法后再将结果放进缓存中。





这里需要注意的点是:

你需要去指定一下 key,这样更新完数据后,才能按照你指定的 key 去覆盖数据。如果你这里不指定 key ,那么数据更新完,就会把入参当成 key 去更新缓存,这样就可能造成缓存数据未覆盖更新情况。



二、@CacheEvict 注解使用

1)、注解使用说明

这个注解的作用就是用来删除缓存中的数据的。使用场景就是:我删除了一个数据,那么同时也就需要在缓存中把这个数据同步删除。



2)、注解重要属性

这个注解有两个比较重要的属性 allEntriesbeforeInvocation

  • 可以通过指定 allEntries = true 把缓存中所有的 key 都删除。

  • beforeInvocation = false 表示缓存的清除是否在方法之前执行。默认是缓存在方法执行之后执行清除操作,这样如果出现异常,缓存就不会清除。





三、@Caching 注解使用

1)、注解使用说明

可以使用 @Caching 注解来定义复杂的缓存规则。



比如这里我就可以通过 @Caching 注解来组合使用 @Cacheable 和 @CachePut 注解,实现一些复杂的缓存规则。



四、@CacheConfig 注解使用

1)、注解使用说明

一般我们在方法是标注缓存相关的注解时候,都需要指定 key 。这样如果方法比较多,在每个方法上都指定 key ,显得比较冗余,就可以把指定 key 的操作通过 @CacheConfig 来统一指定 key ,标识在类上。这样这个类中每个方法都会统一用这个 key,就不需要在每个方法上都指定。



发布于: 2020 年 09 月 05 日 阅读数: 34
用户头像

hepingfly

关注

视频号:hepingfly 分享干货,欢迎关注~ 2018.06.23 加入

B站程序员。目标是做一个有才华,身上有光的男人。

评论

发布
暂无评论
SpringBoot 缓存之常用注解