SpringCache之@CacheEvict注解的使用说明

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

功能说明

我们在日常使用缓存的时候不仅需要添加缓存也需要删除缓存。Springcache中如何来实现缓存的删除呢不错@CacheEvict就能帮助我们来实现缓存的删除。审核这个眼睛是喘气的哪里来的广告?你告诉我

说的直白点@CacheEvict就是一个触发器当我们每次调用被他注解的方法的时候就会出发这个触发器来删除他指定的缓存。他和@Cacheable一样也可以指定一个或多个缓存也可以自定义缓存的key。

使用示例

接下来我们看看如何使用@CacheEvict注解

@ApiOperation(value = "清空缓存")
@CacheEvict(value = {"asnavigation","navigation","banner","article",
        "grouphistory","groupinformation","groupoverview","imagetext",
        "singlepage","systemclosed","rechargeoutlets","links","busroute",
        "system_logo"},key="#id.toString()",allEntries = true,beforeInvocation=true)
@GetMapping("/clear")
public ApiResult clearCache(){
    ApiResult result = new ApiResult();
    result.getData().put("result",redisUtils.clear());
    return result;
}

从上面的代码我们可以看到定义了一个清除缓存的接口用来清空我们的Cache数据在其中可以看到他有两个参数value和allEntries具体什么意思呢我们来看一下下面的介绍。

参数

value 参数

value 意思是指定需要删除的缓存信息

key 参数

和cacheable中的key类似和value组合生成缓存

allEntries 参数

allEntries 意思是是否删除整个缓存value中指定的值默认是false

当为true时会把所有value对应的缓存全部删除

当为false时此时只会删除该key值的缓存

beforeInvocation参数

beforeInvocation的意思是当执行注解标注的这个方法之前限制性清除缓存的操作这样就会使得不管这个方法执行是否成功该缓存都会被清除。保证了清除缓存的效果。

他的默认值是false。当为false的时候不执行。为true的时候才会执行这个逻辑

好了今天的@CacheEvict就先讲解到这欢迎大家留言交流指正。

也希望大家关注我的《coder练习生》

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Spring