Java
- 分类
- 分布式系统
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 15:43
答案
主要是由于在实例化A时,会先调用A的构造方法,在将其放入到三级缓存当中,而构造器注入的话,会在放入缓存之前去对B进行实例化,B同样调用构造方法去获取A,但A并不存在于缓存当中,这就会抛出异常,无法解决。
相关题目(5)
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(框架).md
knowledge_noteQuestion 20: Spring 为什么不能解决构造器的循环依赖?
Source answer: 主要是由于在实例化A时,会先调用A的构造方法,在将其放入到三级缓存当中,而构造器注入的话,会在放入缓存之前去对B进行实例化,B同样调用构造方法去获取A,但A并不存在于缓存当中,这就会抛出异常,无法解决。
Reviewed answer: 因为构造器注入时,依赖在实例化前就必须准备好,Bean 还没来得及放入三级缓存,无法提前暴露引用,因此无法通过三级缓存解决。