spring_循环依赖
2022-12-08 17:25:12 10 举报
spring解决循环依赖的流程
作者其他创作
大纲/内容
得到一个对象,lambd表达式,存入三级缓存存
创建AService
去二级缓存里面找
循环依赖
填充属性,注入AService
写入二级缓存,并删除三级缓存数据
B创建时
填充属性,注入BService
继续执行BService的生命周期,完成BService的Bean创建
找到
将BService记录singletonsCurrentlyInCreation(set),创建中(用于后续判断BService有没有出现循环依赖)
得到一个对象,lambd表达式,存入三级缓存
需要B
创建BService
A创建时
没取到,从三级缓存里面取,执行lambd表达式
根据singletonsCurrentlyInCreation判断有没有出现循环依赖
实例化BService
实例化AService
将AService记录singletonsCurrentlyInCreation(set),创建中(用于后续判断AService有没有出现循环依赖)
去单例池里面找
完成AService创建
赋值给BService的AService
三级缓存singletonFactories<AService,lambda<AService原始对象 or AService代理对象>>lambd表达式会判断当前AService需不需要AOP,需要返回代理对象,不需要就返回原始对象
找不到
需要A
0 条评论
下一页