学习
实践
活动
专区
工具
TVP
写文章

cacheable更新_详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

@Cacheable @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @Cacheable 作用和配置方法 参数 解释 example value 缓存的名称, 在 spring 配置文件中定义,必须指定至少一个 例如: @Cacheable(value=”mycache”) @Cacheable(value={”cache1”,”cache2”} key 缓存的 #result.username ne ‘zhang'”) public User conditionDelete(final User user) @Caching 有时候我们可能组合多个Cache注解使用 ;比如用户新增成功后,我们要添加id–>user;username—>user;email—>user的缓存;此时就需要@Caching组合多个注解标签了。 比如之前的那个@Caching组合,会让方法上的注解显得整个代码比较乱,此时可以使用自定义注解把这些注解组合到一个注解中,如: @Caching(put = { @CachePut(value =

64120
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring缓存注解@Cacheable、@CacheEvict、@CachePut

    @Cacheable @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 参数 解释 example value 缓存的名称,在 spring 配置文件中定义,必须指定至少一个 例如:@Cacheable(value="mycache") @Cacheable(value={"cache1","cache2"} key 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写 ,如果不指定,则缺省按照方法的所有参数进行组合 @Cacheable(value="testcache",key="#userName") condition 缓存的条件,可以为空,使用 SpEL 编写 ,返回 true 或者 false,只有为 true 才进行缓存 @Cacheable(value="testcache",condition="#userName.length()>2")  @CachePut @CachePut 的作用 主要针对方法配置,能够根据方法的返回值对其结果进行缓存,和 @Cacheable 不同的是,它每次都会触发真实方法的调用,在其他地方写的是根据方法的请求参数对其结果进行缓存

    1.4K20

    SpringBoot缓存注解@Cacheable使用姿势介绍

    [logo.jpg] SpringBoot系列缓存注解@Cacheable @CacheEvit @CachePut使用姿势介绍 Spring在3.1版本,就提供了一条基于注解的缓存策略,实际使用起来还是很丝滑的 ,本文将针对几个常用的注解进行简单的介绍说明,有需要的小伙伴可以尝试一下 本文主要知识点: @Cacheable: 缓存存在,则使用缓存;不存在,则执行方法,并将结果塞入缓存 @CacheEvit: 失效缓存 缓存注解介绍 1. @Cacheable 这个注解用于修饰方法or类,当我们访问它修饰的方法时,优先从缓存中获取,若缓存中存在,则直接获取缓存的值;缓存不存在时,执行方法,并将结果写入缓存 这个注解,有两个比较核心的设置 小结 最后管理小结一下Spring提供的几个缓存注解 @Cacheable: 缓存存在,则从缓存取;否则执行方法,并将返回结果写入缓存 @CacheEvit: 失效缓存 @CachePut: 更新缓存

    1K00

    Spring系列缓存注解@Cacheable @CacheEvit @CachePut 使用姿势介绍

    SpringBoot系列缓存注解@Cacheable @CacheEvit @CachePut使用姿势介绍 Spring在3.1版本,就提供了一条基于注解的缓存策略,实际使用起来还是很丝滑的,本文将针对几个常用的注解进行简单的介绍说明 缓存注解介绍 1. @Cacheable 这个注解用于修饰方法or类,当我们访问它修饰的方法时,优先从缓存中获取,若缓存中存在,则直接获取缓存的值;缓存不存在时,执行方法,并将结果写入缓存 这个注解,有两个比较核心的设置 小结 最后管理小结一下Spring提供的几个缓存注解 @Cacheable: 缓存存在,则从缓存取;否则执行方法,并将返回结果写入缓存 @CacheEvit: 失效缓存 @CachePut: 更新缓存 @Caching: 都注解组合 上面虽说可以满足常见的缓存使用场景,但是有一个非常重要的点没有说明,缓存失效时间应该怎么设置???

    50110

    SpringBoot缓存注解@Cacheable之自定义key策略及缓存失效时间指定

    [logo.jpg] 上一篇博文介绍了Spring中缓存注解@Cacheable @CacheEvit @CachePut的基本使用,接下来我们将看一下更高级一点的知识点 key生成策略 超时时间指定 扩展知识点 1. key生成策略 对于@Cacheable注解,有两个参数用于组装缓存的key cacheNames/value: 类似于缓存前缀 key: SpEL表达式,通常根据传参来生成最终的缓存 小结 到此基本上将Spring中缓存注解的常用姿势都介绍了一下,无论是几个注解的使用case,还是自定义的key策略,失效时间指定,单纯从使用的角度来看,基本能满足我们的日常需求场景 下面是针对缓存注解的一个知识点抽象 缓存注解 @Cacheable: 缓存存在,则从缓存取;否则执行方法,并将返回结果写入缓存 @CacheEvit: 失效缓存 @CachePut: 更新缓存 @Caching: 都注解组合 配置参数 项目 系列博文 Spring系列缓存注解@Cacheable @CacheEvit @CachePut 使用姿势介绍 源码 工程:https://github.com/liuyueyi/spring-boot-demo

    3.3K00

    SpringBoot缓存注解@Cacheable之自定义key策略及缓存失效时间指定

    上一篇博文介绍了Spring中缓存注解@Cacheable @CacheEvit @CachePut的基本使用,接下来我们将看一下更高级一点的知识点 key生成策略 超时时间指定 <! 扩展知识点 1. key生成策略 对于@Cacheable注解,有两个参数用于组装缓存的key cacheNames/value: 类似于缓存前缀 key: SpEL表达式,通常根据传参来生成最终的缓存 小结 到此基本上将Spring中缓存注解的常用姿势都介绍了一下,无论是几个注解的使用case,还是自定义的key策略,失效时间指定,单纯从使用的角度来看,基本能满足我们的日常需求场景 下面是针对缓存注解的一个知识点抽象 缓存注解 @Cacheable: 缓存存在,则从缓存取;否则执行方法,并将返回结果写入缓存 @CacheEvit: 失效缓存 @CachePut: 更新缓存 @Caching: 都注解组合 配置参数 项目 系列博文 Spring系列缓存注解@Cacheable @CacheEvit @CachePut 使用姿势介绍 源码 工程:https://github.com/liuyueyi/spring-boot-demo

    91020

    玩转Spring Cache --- @Cacheable@CachePut@CacheEvict缓存注解相关基础类打点【享学Spring】

    若我们需要扩展缓存注解的能力,对这些抽象是非常有必要深入了解的~ Spring内置的三大注解缓存是: Cacheable:缓存 CacheEvict:删除缓存 CachePut:更新缓存 CacheOperation cacheable) { // 这个builder是CacheOperation.Builder的子类,父类规定了所有注解通用的一些属性~~~ CacheableOperation.Builder (cacheable.key()); builder.setKeyGenerator(cacheable.keyGenerator()); builder.setCacheManager(cacheable.cacheManager [] cacheables = caching.cacheable(); for (Cacheable cacheable : cacheables) { ops.add(parseCacheableAnnotation 总结 本篇文章为讲解缓存注解的深入原理分析进行铺垫,所以密切关注这篇文章: 【小家Spring】玩转Spring Cache — @Cacheable/@CachePut/@CacheEvict注解的使用以及原理深度剖析

    3.9K20

    玩转Spring Cache --- @Cacheable@CachePut@CacheEvict注解的原理深度剖析和使用【享学Spring】

    开发过程中因注解的优雅、使用简单使得这种方式广泛被大家所接受和使用,本文将按照先原理,再实操的步骤,一步步解惑Spring缓存注解的原理 缓存注解 关于Spring的缓存注解,一共有如下5个: @Cacheable 所以还没有看这块的,此处再一次推荐:【小家Spring】玩转Spring Cache — @Cacheable/@CachePut/@CacheEvict缓存注解相关基础类打点 CacheInterceptor 但假如修改缓存注解如下: // 注意:unless 是非的意思 @Cacheable(cacheNames = "demoCache", key = "#id",unless = "#result == @Cacheable注解sync=true的效果 在多线程环境下,某些操作可能使用相同参数同步调用(相同的key)。默认情况下,缓存不锁定任何资源,可能导致多次计算,而违反了缓存的目的。 ", key = "#id") // 相同注解标注两个是不行的 因为它并不是@Repeatable的 @Cacheable(cacheNames = "demoCache", key = "#id

    9.4K41

    SpringBoot 缓存之 @Cacheable 详细介绍

    并支持使用 JCache(JSR-107)注解简化我们的开发。 其使用方法和原理都类似于 Spring 对事务管理的支持。 二、@Cacheable 注解使用详细介绍 1、缓存使用步骤 @Cacheable 这个注解,用它就是为了使用缓存的。 2、标注缓存注解即可 ① 第一步:开启基于注解的缓存,使用 @EnableCaching 标注在 springboot 主启动类上 image.png ② 第二步:标注缓存注解 image.png 2、常用属性说明 下面介绍一下 @Cacheable 这个注解常用的几个属性: cacheNames/value :用来指定缓存组件的名字 key :缓存数据时使用的 key,可以用它来指定。 不过需要注意的是: @Cacheable 的属性,key 和 keyGenerator 使用的时候,一般二选一。 ④ condition 符合条件的情况下才缓存。

    27720

    Spring Boot @Cacheable 失效的解决方法

    文章参考了博客园的 zhaoyue1215 用户分享的文章【Spring @Cacheable 缓存不生效的问题】 今天在使用Spring Boot的缓存时候,发现控制台一直输出Hibernate访问数据库时执行的 Sql语句,@EnableCaching注解已经添加到主启动类中, @Cacheable也加到了相应的服务方法上,但是我把断点打到了ConcurrentMapCacheManager类中的方法getCache 解决办法 后来查阅资料发现,如果注解都正确添加,缓存不生效的可能是因为被添加@Cacheable的方法是在内部被其他方法,这样子是无法使用缓存的,例如说我这次情况: /** * 将数据库中的Blog对象取出来 Cacheble() public Blog getBlog(Long id) { // // // // // // return blog; } 因为 @Cacheable 是基于Spring AOP代理类,内部方法调用是不走代理的,@Cacheable是不起作用的 ,因此需要将这两个方法放到不同的类中。

    97320

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 数据采集标注服务

      基于智能化采集标注工具和成熟的数据服务体系,提供专业的数据采集和标注服务,高效交付高质量目标数据,助力AI业务能力的快速提升。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券