三级缓存解决循环依赖
2022-02-12 14:30:08 12 举报
三级缓存解决循环依赖
作者其他创作
大纲/内容
B对象创建
A服务的lambda表达式放入三级缓存中
去一级缓存(单例池)中查找B对象
没有会去三级缓存中执行lambda表达式获取A对象并放入二级缓存中
对原始对象填充属性,注入
返回A服务对象
B服务对象放入一级缓存中
先去一级缓存、二级缓存中查找A服务
new 对象
spring扫描class得到beanDefination
如果没找到去创建B对象
初始化A服务
根据beanDefination生成bean
填充A属性
根据构造方法反射出原始对象
根据class推断构造方法
B对象lambda表达式放入三级缓存中
三级缓存中执行lambda表达式获取B对象
原始对象方法如果有aop,生成代理对象
初始化Aservice
将A服务从二级缓存中移到一级缓存中
A对象创建二阶段
service生命周期
代理对象丢入单例池singleObject(concurrentHashMap),又叫一级缓存
A对象创建一阶段
创建B服务原始对象
继续A服务的创建,将B服务填充到属性中
填充A服务的注入属性,Bservice
收藏
0 条评论
回复 删除
下一页