热门

最新

红包

立Flag

投票

同城

我的

发布
buerguowsq
勇敢小王要去大厂
4 年前
truebuerguowsq

127.
Spring如何解决循环依赖
循环依赖的问题其实是因为同时加载导致死锁,解决循环依赖的问题主要思路是让加载时间错开。
spring通过三级缓存解决循环依赖,第一级缓存是单例池,二级缓存存放创建出来但还没有初始化的对象,对象创建的中间状态,对象初始化的时候,如果在一级缓存没有找到,就会到二级缓存找。通过先加载一个没有初始化的对象的方式,让初始化方法不会同时进行。
spring除了正常的对象还有动态代理对象,动态代理对象的中间状态存放在第三级缓存。
spring无法解决通过构造函数循环依赖的问题,可以用@Lazy,使构造函数不同时进行来解决。

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
打卡打卡
立即登录