spring循环依赖看不懂callme

2024-02-02 20:21:53 0 举报
在Spring框架中,循环依赖是一个常见的问题。当两个或多个bean之间存在直接或间接的依赖关系,且这些依赖关系形成了一个闭环,就称为循环依赖。spring框架默认支持循环依赖的解决,主要是通过三级缓存singletonFactories和earlySingletonObjects来实现。以下是一个循环依赖的例子: 假设有两个bean:A和B,其中A依赖于B,B也依赖于A。如果我们先创建A,然后在A的构造函数中需要B,那么Spring框架会首先尝试从单例池中获取B。如果在创建B之前尚未创建,那么Spring框架会创建一个临时的B对象,并放入到earlySingletonObjects缓存中,然后继续创建A。此时,A已经完成了创建,Spring框架会将其放入到singletonFactories缓存中。最后,B被创建并完成初始化,然后放入到单例池中,并且从earlySingletonObjects缓存中移除临时对象。这就是spring框架解决循环依赖的基本过程。
spring源码
循环依赖处理机制
Bean生命周期
java
面试技巧
作者其他创作
大纲/内容
评论
0 条评论
下一页