一.场景

场景1:

getCache使用@Cacheable注解进行缓存配置

通过service注入对象直接调用getCache方法

场景2:

service新增showcache方法,本地调用getCache()方法

     场景3:

            通过companyService注入对象调用getComCache()方法

            

二.现象

现象1:

   @Cacheable缓存成功:首次进入方法,未使用缓存,第二次成功调用缓存,未进入方法体

            

现象2:

 @Cacheable缓存失效:两次均进入了方法,未使用缓存

     现象3:

            @Cacheable缓存成功:首次进入方法,未使用缓存,第二次成功调用缓存,未进入方法体

三.结论

@Cacheable原理为SpringAop,执行aop拦截时是使用依赖注入的代理对象执行拦截方法,所以需要使用IOC依赖注入的对象调用method,才能使AOP生效,从而使用缓存

四.扩展

     @Transactional事务、自定义AOP注解等均需要注意同类问题,需要通过IOC对象进行方法调用才能进入AOP切面切点方法。

@Cacheable失效相关推荐

  1. Spring@Cacheable注解在类内部调用失效的问题

    如图所示,getRecomendGoogs方法里面调用findImgUrlByName方法,在findImgUrlByName方法上使用@Cacheable注解的时候,并没有走缓存. 要解决这个问题, ...

  2. 注解@Cacheable(value =“XXX“) 实现缓存 -- 失效原因

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一个项目中使用到了注解缓存,但无论怎么检查都不生效,反复确认缓存的使用本身应该没有出错. 最后确认原 ...

  3. Cacheable注解使用详解

    完成Redis基础配置之后,就可以使用Redis对数据进行缓存了. 最简单的方式就是使用springframe为我们提供的@Cacheable注解,以下是@Cacheable注解的具体使用方式. @C ...

  4. @transactional注解_为啥同一个类中普通方法调用Spring注解方法,注解会失效?看完你就明白,So easy!...

    Spring注解(如@Transactional.@Cacheable.@Async等),在使用不当时,很可能会失效.失效的情况有很多种,本文我们就来瞅瞅,为啥同一个类中普通方法调用Spring注解方 ...

  5. Spring AOP注解为什么失效?90%Java程序员不知道

    转载自 Spring AOP注解为什么失效?90%Java程序员不知道 使用Spring Aop注解的时候,如@Transactional, @Cacheable等注解一般需要在类方法第一个入口的地方 ...

  6. SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法...

    由于项目需要使用SpringCache来做一点缓存,但自己之前没有使用过(其实是没有听过)SpringCache,于是,必须先学习之. 在网上找到一篇文章,比较好,就先学习了,地址是: https:/ ...

  7. 项目总结--3(@Cacheable的使用方法和使用技巧)

    在项目中缓存是经常要用到的,之前用的缓存都是Redis做为缓存的,但是在实际工作中用到缓存的地方是非常多,但是又不是只有Redis这一种操作,实际中可以用到的缓存还有SpringBoot,中的@Cac ...

  8. @Cacheable缓存注解使用

    目录 1.1 概述 1.2 @Cacheable使用 1.3 整合Redisson缓存 1.4 整合Guava本地缓存 从spring3.1开始,Spring引入了对Cache的支持.其使用方法和原理 ...

  9. cacheable注解原理_@Cacheable的实现原理

    如果你用过Spring Cache,你一定对这种配置和代码不陌生: 上面两段代码,xml是启用Cache Annotation注解并注册一个cacheManager,第二段代码在getData的时候会 ...

最新文章

  1. WMI Series :事件预订和处理
  2. 计算机设计大赛颁奖典礼主持稿的串词,比赛颁奖典礼主持词
  3. 【Android】不使用WebView来执行Javascript脚本(Rhino)
  4. php使用fopen乱码,php下fopen中文文件名乱码怎么办?
  5. 实时可视化 Debug:VS Code 开源新工具,一键解析代码结构
  6. python图表可视化工具_比Excel制图更强大,Python可视化工具Altair入门教程
  7. sqlalchemy 事务
  8. pmp项目变更的流程图_PMP流程图
  9. 精彩回顾 | Apache Flink Meetup · 北京站(附PPT下载)
  10. C++ 多线程编程 封装多线程api 类似java多线程风格
  11. 大数据技术原理与应用(最后三天备考!!!)
  12. Win11 Windows聚焦不更新了怎么解决?聚焦锁屏图片不更换怎么办
  13. 当我在荒废时间的时候会有多少人在拼命
  14. 【操作系统原理-陈渝老师】第一章 课程介绍及操作系统初识
  15. PySpark——开启大数据分析师之路
  16. 用canvas和原生JS写的一个flappy bird游戏
  17. Tomcat学习之路
  18. 国企工作,让我有更多时间了解VCN中文编程
  19. matlab图源代码,[转载]常用的一些图像处理Matlab源代码
  20. java: 关于反射

热门文章

  1. Python:实现hill climbing爬山法用来寻找函数的最大值算法(附完整源码)
  2. Unity官方案例之星际航行游戏(Space Shooter)学习总结
  3. 台达PLC实现远程下载程序
  4. Golang 对接Google翻译
  5. 报错:[Banner] The number of titles and images is different
  6. FrontEnd笔记 -- PhotoShop
  7. HTML的style属性(替代font等标签)
  8. RMON 远端网络监控
  9. 浅谈市场降温后的区块链发展前景
  10. Python | 用Python画个美队盾牌送给你