Spring中循环依赖的两个小问题

63 阅读1分钟

我们知道在单例的情况下通过setter注入和字段注入的方式,Spring是可以帮助我们解决循环依赖的问题!

但是多例的情况和构造器注入的方法为什么会报异常?

多例的情况循环依赖异常

这个其实很好解释,因为在处理循环依赖的问题我们是通过三级缓存来打破循环依赖的,但是多例Bean每次都是创建新的Bean,没有存入缓存。

所以自然没办法处理循环依赖的问题!

构造器注入的方法循环依赖异常

我们在idea工具中使用字段注入的方式把一个类注入到另外一个类中时,idea工具会提示不推荐这个方法,需要我们使用构造器来注入,

因为构造器方法注入时的字段是不可变的,且构造器的入参是一个完全初始化的状态,但是对于循环依赖这个问题来说,依赖双方的Bean都是半成品的,

所以这个情况构造器方法注入也是不支持的!

阅读原文