1. 首页
  2. 编程语言
  3. Java
  4. 浅谈Spring 解决循环依赖必须要三级缓存吗

浅谈Spring 解决循环依赖必须要三级缓存吗

上传者: 2022-05-16 06:57:46上传 PDF文件 104.04 KB 热度 34次

本篇文章就 Spring 是如何使用三级缓存解决循环依赖作为引子,验证两级缓存是否可以解决循环依赖。Spring 解决循环依赖的核心就是提前暴露对象,而提前暴露的对象就是放置于第二级缓存中。因此,Spring 一开始提前暴露的并不是实例化的 Bean,而是将 Bean 包装起来的 ObjectFactory。通过上面的解析,我们可以知道 Spring 需要三级缓存的目的是为了在没有循环依赖的情况下,延迟代理对象的创建,使 Bean 的创建符合 Spring 的设计原则。为什么 Spring 不选择二级缓存,而要额外多添加一层缓存呢?但是因为循环依赖的出现,导致了 Spring 不得不提前去创建代理,因为如果不提前创建代理对象,那么注入的就是原始对象,这样就会产生错误。

下载地址
用户评论