最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用@CacheEvict?多參數(shù)如何匹配刪除

 更新時間:2021年12月31日 09:35:42   作者:miheal_near  
這篇文章主要介紹了使用@CacheEvict?多參數(shù)如何匹配刪除,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@CacheEvict 多參數(shù)匹配刪除

如果@Cacheable(“XXX”)

Object getXXX(String a, String b, String c);

spring的緩存使用的key是ESPL表達式,然后翻看源碼key默認用的生成方式是org.springframework.cache.interceptor.SimpleKeyGenerator

大于1個參數(shù)走的是最后一個方法

 /**
  * Generate a key based 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對應(yīng)代碼,發(fā)現(xiàn)返回的其實是SimpleKey

 /**
  * Create a new {@link SimpleKey} instance.
  * @param elements the elements of the key
  */
 public SimpleKey(Object... elements) {
  Assert.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

處理對應(yīng)的key。(之前的redis的文章已寫過,所以不重復(fù)寫了)

下面博文的 MyKeyGenerator 這個類

sprintboot使用spring-security包,緩存內(nèi)存與redis共存

方案二:@Cacheable(value=“XXX”, key=“xxxx”)

@CacheEvict(value=“XXX”, key=“xxxx”)

做相應(yīng)的key配置

數(shù)組的話可以使用 key = “#root.args[0]”

參數(shù)參考如下:

名字 位置 描述 示例
methodName root object 當(dāng)前被調(diào)用的方法名 #root.methodName
method root object 當(dāng)前被調(diào)用的方法 #root.method .name
target root object 當(dāng)前被調(diào)用的目標對象 #root.target
targetClass root object 當(dāng)前被調(diào)用的目標對象類 #root.targetClass
args root object 當(dāng)前被調(diào)用的方法的參數(shù)列表 #root.args[0]
caches root object 當(dāng)前方法調(diào)用使用的緩存列表 #root.caches[0].name
argument name evaluation context 方法參數(shù)的名字,可以直接#參數(shù)名,也可以使用#p0或#a0的形式,0代表參數(shù)的索引 #iban、#a0、#p0
result evaluation context 方法執(zhí)行后的返回值 #result

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談JVM系列之JIT中的Virtual Call

    淺談JVM系列之JIT中的Virtual Call

    什么是Virtual Call?Virtual Call在java中的實現(xiàn)是怎么樣的?Virtual Call在JIT中有沒有優(yōu)化?所有的答案看完這篇文章就明白了。
    2021-06-06
  • IDEA打開java項目后里面的java文件不能運行解決辦法

    IDEA打開java項目后里面的java文件不能運行解決辦法

    這篇文章主要給大家介紹了關(guān)于IDEA打開java項目后里面的java文件不能運行的解決辦法,有時候想運行別人的項目,但是別人的項目并非IDEA項目(甚至只有源碼),當(dāng)我們打開項目時候,并不能運行,需要的朋友可以參考下
    2023-10-10
  • Mybatis 中 Oracle 的拼接模糊查詢及用法詳解

    Mybatis 中 Oracle 的拼接模糊查詢及用法詳解

    這篇文章主要介紹了Mybatis 中 Oracle 的拼接模糊查詢及用法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • JavaGUI實現(xiàn)隨機單詞答題游戲

    JavaGUI實現(xiàn)隨機單詞答題游戲

    這篇文章主要為大家詳細介紹了JavaGUI實現(xiàn)隨機單詞答題游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • kafka監(jiān)聽問題的解決和剖析

    kafka監(jiān)聽問題的解決和剖析

    這篇文章主要給大家介紹了關(guān)于kafka監(jiān)聽問題的解決和剖析的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MyBatisCodeHelperPro插件下載及使用教程詳解

    MyBatisCodeHelperPro插件下載及使用教程詳解

    這篇文章主要介紹了MyBatis CodeHelperPro插件使用教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • Java 使用線程池執(zhí)行多個任務(wù)的示例

    Java 使用線程池執(zhí)行多個任務(wù)的示例

    這篇文章主要介紹了Java 使用線程池執(zhí)行多個任務(wù)的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • SpringBoot整合Web開發(fā)之Json數(shù)據(jù)返回的實現(xiàn)

    SpringBoot整合Web開發(fā)之Json數(shù)據(jù)返回的實現(xiàn)

    這篇文章主要介紹了SpringBoot整合Web開發(fā)其中Json數(shù)據(jù)返回的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 使用jaxp進行dom解析_動力節(jié)點Java學(xué)院整理

    使用jaxp進行dom解析_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了使用jaxp進行dom解析的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • Java關(guān)鍵字詳解之final static this super的用法

    Java關(guān)鍵字詳解之final static this super的用法

    this用來調(diào)用目前類自身的成員變量,super多用來調(diào)用父類的成員,final多用來定義常量用的,static定義靜態(tài)變量方法用的,靜態(tài)變量方法只能被類本身調(diào)用,下文將詳細介紹,需要的朋友可以參考下
    2021-10-10

最新評論

莒南县| 望谟县| 兴宁市| 嘉荫县| 伊宁市| 香河县| 民权县| 庆安县| 尼木县| 增城市| 于都县| 房山区| 安仁县| 自贡市| 灯塔市| 习水县| 娱乐| 博乐市| 赞皇县| 方正县| 南漳县| 新晃| 长春市| 板桥市| 宣威市| 五河县| 北川| 商丘市| 邛崃市| 阜南县| 新丰县| 镇巴县| 黄平县| 甘肃省| 科技| 都安| 云和县| 襄樊市| 封丘县| 岳阳市| 娄烦县|