循环依赖解决
2021-11-11 10:22:01 9 举报
循环依赖解决
作者其他创作
大纲/内容
Object sharedInstance = getSingleton(beanName);从缓存中获取(只查一级缓存)
applicationContext.getBean(\"testService1\");获取userService1
一级缓存:存放完整的Bean
二级缓存: 存放半成品Bean
三级缓存:存放ObjectFactory
Service2注入属性Service1成功
Service2执行初始化方法
从三级缓存中获取到值service1,service1存到二级缓存,并将lambda表达式移除
答:可以解决、但不能存在AOP情况,为了保证多次获取都是同一个代理对象
1.只使用一级缓存能不能解决循环依赖问题?
applicationContext.getBean(\"testService2\");获取userService2
循环依赖经典面试题
Service1执行初始化方法
3. 构造注入为什么不能解决循环依赖
testService1注入属性TestService2成功
2.只使用 二级缓存能不能解决循环依赖问题?
Service2完整对象将添加到一级缓存
applicationContext.getBean(\"testService1\");获取userService2
答:解决循环依赖的本质是将实例化和初始化过程分隔开来,先通过构造函数构建一个不完整的Bean
Service1完整对象将添加到一级缓存
Object sharedInstance = getSingleton(beanName);从缓存中获取(查1级2级3级缓存)
0 条评论
下一页