循环依赖流程图
2023-01-19 22:09:30 1 举报
登录查看完整内容
spring循环依赖
作者其他创作
大纲/内容
true
类加载、实例化
AbstractBeanFactory.getSingleton(\"AServoce\"); 256行
单例bean、allowCircularReferences支持循环依赖(默认为true、当前bean正在创建中)
逻辑类似创建A步骤
初始化前、初始化、初始化后把BService放入单例池
.AbstractAutowireCapableBeanFactory614行 从单例池中获取AService没有,从二级缓存中获取到原始/代理后的对象放入单例池
从单例池中获取,没有取到且A正在创建中,从二级缓存中获取,二级缓存没有,调用三级缓存中对应的lambda表达式得到AService
创建BService
创建AService
依赖注入AService
依赖注入BService
lambda表达式逻辑:执行lambda表达式,如果当前Bean需要AOP,那么得到就是对应的代理对象,如果无需AOP,则直接得到一个原始对象
DefaultSingletonBeanRegistry.beforeSingletonCreation 227行 设置正在创建中的beanName
0 条评论
回复 删除
下一页