开发者社区 问答 正文

Spring为什么要三级缓存?二级不行吗?

Spring为什么要三级缓存?二级不行吗?

展开
收起
真的很搞笑 2021-10-25 21:56:31 757 分享 版权
1 条回答
写回答
取消 提交回答
  • 不可以,主要是为了生成代理对象。

    因为三级缓存中放的是生成具体对象的匿名内部类,他可以生成代理对象,也可以是普通的实例对象。

    使用三级缓存主要是为了保证不管什么时候使用的都是一个对象。

    假设只有二级缓存的情况,往二级缓存中放的显示一个普通的Bean对象,BeanPostProcessor去生成代理对象之后,覆盖掉二级缓存中的普通Bean对象,那么多线程环境下可能取到的对象就不一致了。

    2021-10-25 21:56:51
    赞同 展开评论
问答分类:
问答地址: