Springboot 中 @Cacheable不生效的原因

1.因为@Cacheable 是使用AOP 代理实现的 ,通过创建内部类来代理缓存方法,这样就会导致一个问题,类内部的方法调用类内部的缓存方法不会走代理,不会走代理,就不能正常创建缓存,所以每次都需要去调用数据库。

  // get 方法调用了 stockGive 方法,stockGive 方法使用了缓存
  // 但是每次执行get 方法的时候,缓存都没有生成,也就是缓存没有被创建
  public void get(){
    stockGive(0L);
  }
  @Override
  @Cacheable(value = CacheConfig.COMMON, key = "'stock/give'+#memberId")
  public List<Map<String, Object>> stockGive(Long memberId) {
      // do something
  }
  1. 相关类没有实例化 serialVersionUID
@Getter@Setter
public class Location implements Serializable {

    private static final long serialVersionUID = -6878053406541801993L;
    // do something
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,841评论 1赞 32
  • 本文转自被遗忘的博客 Spring Cache 缓存是实际工作中非常常用的一种提高性能的方法, 我们会在许多场景下...
    quiterr阅读 1,236评论 0赞 8
  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
    Java小辰阅读 1,181评论 0赞 14
  • 原创文章,转载请标注出处:《Spring基础系列-Spring事务不生效的问题与循环依赖问题》 一、提出问题 不知...
    唯一浩哥阅读 1,131评论 4赞 15
  • 人生一直都只能直播,没有彩排,人生不管做什么选择,都会得到相应的结果,所以才说人生选择很重要,选择什么因就会得什么...
    张艺紫阅读 56评论 0赞 0

友情链接更多精彩内容