【微服务】spring 循环依赖问题深入解析

目录

一、循环依赖概述

1.1 什么是循环依赖

1.2 spring中的循环依赖

二、循环依赖问题模拟

2.1 循环依赖代码演示

2.2 问题分析与解决

2.2.1 使用反射+中间容器

三、spring循环依赖问题原理解析

3.1 spring中的依赖注入

3.1.1 field属性注入

3.1.2 setter方法注入

3.1.3 构造器注入

3.2 spring中不同的循环依赖解决方案

3.2.1 spring中bean的生命周期

3.2.2 循环依赖处理时机

四、spring 三级缓存解决方案

4.1 前置准备

4.2 三级缓存源码分析过程

4.2.1 代码调试技巧

4.3 spring 为什么使用三级缓存?

4.4 循环依赖解决方案小结

五、结语


一、循环依赖概述

1.1 什么是循环依赖

循环依赖,叫做循环引用,指一个或者多个bean对象之间互相引用,最后形成一种类似环形的依赖关系,循环依赖的大致情形如下几种:

从上图不难发现,循环依赖其实就是一个逻辑上的闭环,像中间的那张图,bean-A中注入bean-B,创建bean-A的时候就会去容器中查找bean-B,发现没有,就会去创建bean-B,而创建bean-B的时候,发现又注入了bean-A,于是又去容器检查bean-A......,接下来就会不断的循环重复上面的过程。有心的同学似乎发现,这个是不是有点像死锁了呢?其实循环依赖就是一个死循环的过程。</

猜你喜欢

转载自blog.csdn.net/congge_study/article/details/141940806