专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

一张图了解 Spring 的 循环依赖

问题

public class A{
    @Autowire
    private B b;
}
public class B{
    @Autowire
    private A a;
}

这种情况是不是spring需要先实例化A(或者先B),实例化A之后填充属性的时候发现还需要依赖B然后需要实例化B,实例化B之后发现还需要填充属性A,然后是不是又要去实例化A,这不就造成死循环了吗,spring是怎么解决这种互相依赖的?

图解:

70_1.png

总结

其实最主要的就是 singletonFactories 这个map,A会先实例化好对象,然后把对象放到这个map中去,然后再填充属性的时候需要依赖注入B,实例化B的之后,往B填充属性的时候,依赖注入A,这时候会从singletonFactories这个map中获取对象,但是这个对象还没有完成属性填充和初始化,B拿到A的对象之后,B进行属性填充和bean的初始化,然后依赖注入给了A对象,完成循环依赖。

文章永久链接:https://tech.souyunku.com/26705

未经允许不得转载:搜云库技术团队 » 一张图了解 Spring 的 循环依赖

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们