首页 > 作文

使用@CacheEvict 多参数如何匹配删除

更新时间:2023-04-04 08:57:32 阅读: 评论:0

目录
@cacheevict 多参数匹配删除解决思路方案一方案二

@cacheevict 多参数匹配删除

如果@cacheable(“xxx”)

object getxxx(string a, string b, string c);

spring的缓存使用的key是espl表达式,然后翻看源码key默认群众路线总结报告用的生成方式是org.百度总裁李彦宏springframework.cache.interceptor.simplekeygenerator

大于1个参数走的是最后一个方法

 /**  * generate a key bad on the specified parameters.  */ public static object generatekey(object... params) {  if (params.length == 0) {   return simplekey.empty;  }  if (params.length == 1) {   object param = params[0];   if (param != null && !param.getclass().isarray()) {    return param;   }  }  return new simplekey(params); }

然后查看org.springframework.cache.interceptor.simplekey对应代码,发现返回的其实是simplekey

 /**  * create a new {@link simplekey} instance.  * @param elements the elements of the key  */ public simplekey(object... elements) {  asrt.notnull(elements, "elements must not be null");  this.params服装工作室 = new object[elements.length];  system.arraycopy(elements, 0, this.params, 0, elements.length);  this.hashcode = arrays.deephashcode(this.params); }

解决思路

方案一

单独写一个自定义的keygenerator,处理对应的key。(之前的redis的文章已写过,所以不重复写了)

下面博文的 mykeygenerator 这个类

方案二

@cacheable(value=“xxx”, key=“xxxx”)
@cacheevict(value=“xxx”, key=“xxxx”)

做相应的key配置

数组的话可以使用 key = “#root.args[0]”

参数参考如下:

名字位置描述示例methodnameroot 春的寓意object当前被调用的方法名#root.methodnamemethodroot object当前被调用的方法#root.method .nametargetroot object当前被调用的目标对象#root.targettargetclassroot object当前被调用的目标对象类#root.targetclassargsroot object当前被调用的方法的参数列表#root.args[0]cachesroot object当前方法调用使用的缓存列表#root.caches[0].nameargument nam1um等于多少meevaluation context方法参数的名字,可以直接#参数名,也可以使用#p0或#a0的形式,0代表参数的索引#iban、#a0、#p0resultevaluation context方法执行后的返回值#result

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 08:57:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/ed43cad3af8ea1092575f3af079bcf38.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:使用@CacheEvict 多参数如何匹配删除.doc

本文 PDF 下载地址:使用@CacheEvict 多参数如何匹配删除.pdf

标签:参数   方法   方案   可以使用
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图