zoukankan      html  css  js  c++  java
  • @CacheEvict中的allEntries与beforeInvocation

    在spring cache中,@CacheEvict是清除缓存的注解。其中注解参数可以只有value,key意思是清除在value值空间中的key值数据,此时默认在当前注解方法成功执行之后再清除。这时候就会存在一个问题,也许你的注解方法成功执行了删除操作,但是后续代码抛出异常导致未能清除缓存,下次查询时依旧从缓存中去读取,这时查询到的结果值是删除操作之前的值。

    有一个简单的解决办法,在注解参数里面加上beforeInvocation为true,意思是说当执行这个方法之前执行清除缓存的操作,这样不管这个方法执行成功与否,该缓存都将不存在。

    当注解参数加上allEntries为true时,意思是说这个清除缓存是清除当前value值空间下的所有缓存数据。

    @CacheEvict(value={"atricleCache","atricleCaches"},allEntries=true,beforeInvocation=true)//清除缓存
    努力学习java的Cherish
  • 相关阅读:
    oracle修改字符编码
    oracle修改约束列
    oracle非空约束
    Linux修改字符集
    修改oracle字符集合
    word问题禁止宏
    增加修改表列
    oracle增加sequence
    增加 修改oracle约束条件
    oracle用户 密码永不过期
  • 原文地址:https://www.cnblogs.com/cherish-code/p/14107502.html
Copyright © 2011-2022 走看看