Spring解决循环依赖的原理图
2022-09-14 12:29:41 0 举报
spring三级缓存
作者其他创作
大纲/内容
getBean(beanA)
beanB获取beanA的早期引用
添加到一级缓存
返回beanA的原始对象
最后,完成beanA的实例化
getSingleton(beanA)
添加到三级缓存
创建bean对象
getBean(beanB)
创建依赖的beanB
getObjectForBeanInstance(...)
尝试从各级缓存中获取bean
beanB完成实例化和初始化
getSingleton(beanA)==NULL
getSingleton(beanB)==NULL
开始创建bean实例
属性填充时,发现依赖B,接着去找B
属性注入
先创建beanA
尝试从各级缓存获取bean
由于第1步已经添加了缓存所以这里不为空并将beanA从三级缓存移入二级缓存
0 条评论
下一页