阿里二面:Spring是如何解决Bean循环依赖的?二级缓存就可以解决Spring循环依赖问题,为什么要用三级缓存?

作者: 徐庶说技术分类: 计算机技术 发布时间: 2023-12-27 20:09:43 浏览:944 次

阿里二面:Spring是如何解决Bean循环依赖的?二级缓存就可以解决Spring循环依赖问题,为什么要用三级缓存?

新生事物ii:
我看了spring的源码,感觉有一个地方有疑问,一个代理bean的生成其实是调用的InstantiationAwareBeanPostProcessor里面的applyBeanPostProcessorsBeforeInstantiation方法,如果一个bean是代理bean,那么会发生短路,拿到的bean是wrapIfNecessary返回的代理bean,然后直接执行的是applyBeanPostProcessorsAfterInitialization,代理bean就创建好了,没有看到对代理bean进行属性赋值和初始化的操作,请教一下,对代理bean的初始化(比如实现了InitializingBean)还有赋值(比如Autowired)是在哪里做的呢

【回复】查询了其他资料之后,我目前得出的结论是,实际上AOP有两个时机,第一个时机是我上面说的通过resolveBeforeInstantiation里面的applyBeanPostProcessorsBeforeInstantiation进行创建代理,如果创建成功,那这个Bean就不归spring管了,这个bean就由开发人员自己负责完成创建了,所以不会走完bean的生命周期短路返回。第二个时机是走完正常的生命周期之后进入applyBeanPostProcessorsAfterInitialization方法,生成AOP对象,老师我理解的对吗
啦啦啦hcxjc:
还好我之前看过《深入解析spring源码》知道up主在说什么[吃瓜]

蜀中大雨连绵filp:
你能一句话概括下嘛,你讲了半小时,讲道理一个人哪有那么长时间看那么久。一天也就看两三题

【回复】回复 @徐庶说技术 : 当初我是不建议出院的
【回复】一句话讲不清楚啊 [doge]

科技猎手 科技 程序员 Spring面试题 spring面试 Spring循环依赖 Bean循环依赖 面试 计算机技术 java

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读