什么是循环依赖

简介: 首先搞懂一个概念,解决循环依赖并不是靠我们,spring会帮我们解决但是!!!记住一点,很重要

什么是循环依赖

先看个demo

@Data
public class A{
  private B b;
}
@Data
public class B{
  private A a;
}

由此导致无限循环


如何解决


首先搞懂一个概念,解决循环依赖并不是靠我们,spring会帮我们解决

但是!!!记住一点,很重要


spring只能通过提前暴露bean来解决setter注入的循环依赖,构造器注入的循环依赖无法解决(Spring实例化一个bean的时候,是分两步进行的,首先实例化目标bean,然后为其注入属性。)


不过话说回来,如果出现循环依赖,一般都是设计上的问题,但凡正经点的项目都不会出现这种问题,如果出现了,不用方,我们能做的就是把构造器创建bean改成setter,剩下的交给spring;


相关文章
|
8月前
|
设计模式 测试技术 编译器
C++项目中打破循环依赖的锁链:实用方法大全(一)
C++项目中打破循环依赖的锁链:实用方法大全
792 0
|
6月前
|
传感器
循环依赖问题之Bean循环依赖的定义是什么
循环依赖问题之Bean循环依赖的定义是什么
循环依赖问题之Bean循环依赖的定义是什么
|
6月前
|
Java Spring
Spring循环依赖问题之构造器内的循环依赖如何解决
Spring循环依赖问题之构造器内的循环依赖如何解决
|
6月前
|
存储 缓存 Java
Spring循环依赖问题之循环依赖异常如何解决
Spring循环依赖问题之循环依赖异常如何解决
|
8月前
|
Java 测试技术 Spring
什么是循环依赖,如何解决?
在 Spring 应用中,循环依赖指的是两个或多个 Bean 之间相互引用,造成了一个环状的依赖关系。举例来说,如果 Bean A 依赖于 Bean B,同时 Bean B 也依赖于 Bean A,就形成了循环依赖。这种情况下,Spring 容器在创建这些 Bean 时会陷入无限循环,导致应用启动失败或者出现其他不可预测的问题。
131 1
|
8月前
|
测试技术 持续交付 API
C++项目中打破循环依赖的锁链:实用方法大全(二)
C++项目中打破循环依赖的锁链:实用方法大全
239 0
|
8月前
|
设计模式 敏捷开发 持续交付
C++项目中打破循环依赖的锁链:实用方法大全(三)
C++项目中打破循环依赖的锁链:实用方法大全
261 0
|
8月前
|
Java 测试技术 Spring
什么是循环依赖,如何解决
什么是循环依赖,如何解决
|
8月前
|
Java 测试技术 Spring
什么是循环依赖,并如何解决
在 Spring 应用中,循环依赖指的是两个或多个 Bean 之间相互引用,造成了一个环状的依赖关系。举例来说,如果 Bean A 依赖于 Bean B,同时 Bean B 也依赖于 Bean A,就形成了循环依赖。这种情况下,Spring 容器在创建这些 Bean 时会陷入无限循环,导致应用启动失败或者出现其他不可预测的问题。
151 0
|
8月前
|
存储 缓存 Java
ioc循环依赖怎么解决
ioc循环依赖怎么解决
79 0