所有分类
  • 所有分类
  • 未分类

Spring循环依赖的原理(三)-原理概述

简介

说明

本文介绍Spring(SpringBoot)解决循环依赖的流程。

系列文章

  1. Spring循环依赖的原理系列(一)–什么是循环依赖 – 自学精灵
  2. Spring循环依赖的原理系列(二)–打断点分析 – 自学精灵
  3. Spring循环依赖的原理系列(三)–原理概述 – 自学精灵
  4. Spring循环依赖的原理系列(四)–为什么用三级缓存,而不是二级 – 自学精灵

循环依赖流程图

循环依赖必须用流程图才能写清楚,不然只会云里雾里。此处我精心绘制流程图,将原理进行展示,面试官问到这个题目时,只要把这个流程图描述一遍给他,这道题你就满分!如果你只回答了个“三级缓存”,那就是不及格了。

场景:有两个Bean:A,B。A依赖了B(A注入了B),B依赖了A(B注入了A)。

此内容仅限VIP查看,请先
0

评论1

请先

  1. 这里总结了一下站长的那张图: 1.创建A实例,实例化的时候把A对象⼯⼚放⼊三级缓存,表示A开始实例化了, 虽然我这个对象还不完整,但是先曝光出来让大家知道 2.A注⼊属性时,发现依赖B,此时B还没有被创建出来,所以去实例化B 3.同样,B注⼊属性时发现依赖A,它就会从缓存里找A对象。依次从⼀级到三级 缓存查询A,从三级缓存通过对象⼯⼚拿到A,发现A虽然不太完善,但是存 在,把A放⼊⼆级缓存,同时删除三级缓存中的A,此时,B已经实例化并且初 始化完成,把B放入⼀级缓存。 4.接着A继续属性赋值,顺利从⼀级缓存拿到实例化且初始化完成的B对象,A对 象创建也完成,删除⼆级缓存中的A,同时把A放⼊⼀级缓存 5.最后,⼀级缓存中保存着实例化、初始化都完成的A、B对象
    daokongyuan 2024-10-23 1
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录