@缓存驱逐中的艾伦特里与调用前的区别是什么

技术@CacheEvict中的allEntries与beforeInvocation的区别是什么这篇文章将为大家详细讲解有关@CacheEvict中的allEntries与beforeInvocation的区别是什么,文

本文将详细解释@ CacheEvict中的allEntries和beforeInvocation之间的区别。文章内容质量较高,边肖将分享给大家参考。希望你看完这篇文章后有所了解。

00-1010在spring cache中,@ CacheEvict是一个清除缓存的注释。

注释参数只能是值,key表示清除值空间中的键值数据。此时,默认情况下,当前注释方法成功执行后,它将被清除。

这个时候,就会出现问题。也许您的注释方法成功地执行了删除操作,但是后续代码抛出了一个异常,并且未能清除缓存,因此在下一次查询中仍然会从缓存中读取它。此时,查询结果值是删除操作之前的值。

有一个简单的解决方案,将beforeInvocation添加到注释参数中是真的,这意味着在执行此方法之前,缓存将被清除,因此无论此方法是否成功执行,缓存都不会存在。

当注释参数加上allEntries为真时,这意味着该缓存清除意味着清除当前值空间中的所有缓存数据。

00-1010最近,在项目中使用了@Cacheable和@ CacheEvict这两个注释来添加和清除缓存,但有时它们会出现在同一个事务中。首先,缓存是干净的,但是有一个方法不在这个事务中,它调用查询并将更新前的数据放回缓存中,所以我想好好研究一下从缓存中删除的注释@ CacheEvict。

@CacheEvict allEntries与beforeInvocation区别

必需属性,用于指定该方法清除哪个缓冲区数据。默认情况下,它是一个空数组。

00-1010这个属性是指整个缓冲区是否清晰。

00-1010为键属性,表示在执行相应方法之前是否删除缓存,默认值为false(即执行方法后删除缓存)。当我们在执行方法之前遇到删除缓存的需求时,也就是说,无论方法是否成功,我们都需要清除缓存,然后我们可以将before invoke的值更改为true。

00-1010此属性指定一个SpEL表达式,只有当表达式为真时,缓存才会被清除。

00-1010通过SpEL表达式显示指定缓存的密钥。

例如:key='#warehousePo.guid 'all ' '

@CacheEvict注解参数详解

缓存名称集合,数据结构为数组类型。

我用的比较多的是beforeInvocation的用法,因为根据不同的业务逻辑,会有不同的缓存删除场景,所以需要仔细考虑是设置为true还是false。文章比较浅,所以可以大致了解每个参数的含义。

@ CacheEvict中的allEntries和beforeInvocation有什么区别?我在这里分享一下。我希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157915.html

(0)

相关推荐

  • 牛客网面试题

    技术牛客网面试题 牛客网面试题目录
    一、JAVA
    二、计算机网络
    三、操作系统
    四、项目
    五、数据库
    第六部分 框架
    第七部分 设计模式
    第八部分 数据结构和算法
    第九部分 Linux
    ########

    礼包 2021年12月20日
  • 为什么idea输出会乱码

    技术为什么idea输出会乱码这篇文章主要介绍“为什么idea输出会乱码”,在日常操作中,相信很多人在为什么idea输出会乱码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么idea输出

    攻略 2021年10月26日
  • rhel6.4-11.2.0.3-RAC如何搭建单节点DG

    技术rhel6.4-11.2.0.3-RAC如何搭建单节点DG这篇文章主要为大家展示了“rhel6.4-11.2.0.3-RAC如何搭建单节点DG”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一

    攻略 2021年11月16日
  • Burpsuite中如何实现爆破数据库名称

    技术Burpsuite中如何实现爆破数据库名称本篇文章为大家展示了Burpsuite中如何实现爆破数据库名称,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。靶机环境:win7、ph

    攻略 2021年12月10日
  • web前端与后端分离的架构实例分析

    技术web前端与后端分离的架构实例分析本篇内容主要讲解“web前端与后端分离的架构实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端与后端分离的架构实例分析”吧

    攻略 2021年11月17日
  • JAVA的经典面试问题有哪些

    技术JAVA的经典面试问题有哪些本篇内容介绍了“JAVA的经典面试问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

    攻略 2021年11月30日