当前位置:   article > 正文

spring循环依赖源码分析_spring循环依赖代码源码

spring循环依赖代码源码

绪论

在使用spring或者springboot项目开发中,经常通过注入的方式完成一个bean对另一个bean的引用,比如classA中药注入B的bean,写法如下

@Autowired
private B b
  • 1
  • 2

而B中要注入A的话就是下面的写法了

@Autowired
private A a
  • 1
  • 2

用法非常简单,一目了然,用习惯了就成自然了,觉得就是那么回事,但小编最近读了点儿spring源码,就想搞清楚spring怎么就那么聪明,你那样用就可以完成注入呢?

现在我想探讨的是另一个问题,当在class A 中注入B,同时在class B中注入A,如果按照spring的bean的生命周期的过程去分析,发现这个问题竟然是循环依赖,按照我的理解和对spring ioc的一点研究,这就是成了死循环了啊,那么spring是怎么解决这个问题呢?这个问题很重要也很有意思,我们先来看看下面这张简图:
在这里插入图片描述

上述这幅图从直观的理解上描述了一个看似bug的问题,就是循环注入依赖,首先我们通过代码来看一个简单的例子吧,代码非常简单,两个被spring管理的类,一个启动类,一

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号