【Spring循环依赖的解决】The dependencies of some of the beans in the application context form a cycle

这篇具有很好参考价值的文章主要介绍了【Spring循环依赖的解决】The dependencies of some of the beans in the application context form a cycle。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.报错信息

【Spring循环依赖的解决】The dependencies of some of the beans in the application context form a cycle,解决bug,spring,java,mybatis

2.问题描述

启动报错: The dependencies of some of the beans in the application context form a cycle:

3. 报错原因

两个类相互引用对方,导致Spring在初始化bean的时候不知道先初始化哪个,从而形成循环依赖注入。
类A依赖类B,类B也依赖类A,这种情况就会出现循环依赖。

Bean A → Bean B → Bean A

上面是比较容易发现的循环依赖,也有更深层次的循环依赖。

Bean A → Bean B → Bean C → Bean D → Bean E → Bean A

4. 解决办法

方法1:代码解耦

根据报错的提示重新设计类的依赖,让其中一个类不要引用对方,避免循环依赖

方法2: @Lazy注解

不使用基于构造函数的依赖注入
在字段上使用@Autowired注解,让Spring决定在合适的时机注入。
用基于setter方法的依赖注射取代基于构造函数的依赖注入来解决循环依赖。
在@Autowired注解上方加上@Lazy注解(延迟加载)

两种办法都可以解决循环依赖的问题。文章来源地址https://www.toymoban.com/news/detail-715379.html

到了这里,关于【Spring循环依赖的解决】The dependencies of some of the beans in the application context form a cycle的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring问题解决: Java Runtime (class file version 55.0), this version of the Java Runtim

    ch/qos/logback/classic/spi/LogbackServiceProvider has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 这只是版本不匹配。已经使用 Java 版本 11 编译了您的代码,而您当前的 JRE 是版本 8。请尝试将您的 JR降级

    2024年02月11日
    浏览(70)
  • The following packages have unmet dependencies解决方法

    ubuntu - How do I resolve `The following packages have unmet dependencies` - Stack Overflow

    2024年02月13日
    浏览(41)
  • Spring6-IoC(Inversion of Control)控制反转和DI(Dependency Injection)依赖注入,手动实现IOC

    Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的 反射机制 。简单来说, 反射机制指的是程序在运行时能够获取自身

    2024年02月09日
    浏览(62)
  • 已解决The above exception was the direct cause of the following exception:

    已解决RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd ImportError: numpy.core.multiarray failed to import The above exception was the direct cause of the following exception: SystemError: returned a result with an error set 粉丝群里面的一个小伙伴遇到问题跑来私信我,想用ddddocr模块做验证码识

    2024年01月19日
    浏览(48)
  • spring 的循环依赖以及spring为什么要用三级缓存解决循环依赖

            bean的生命周期         这里简单过一下 class -无参构造 -普通对象 -依赖注入(对加了autowire等的属性赋值) -初始化前-初始化 -初始化后(aop) -放入单例池的map(一级缓存) -bean对象 这里提一点单例bean单例bean 其实就是用mapbeanName,Bean对象创建的,多例bean就不

    2024年02月15日
    浏览(57)
  • maven打包失败:the pom for XXX is missing, no dependency information available 问题解决

    问题描述:springcloud项目,idea打包pacake、compile时报错,THE POM for ... is missing,no dependency information available,此时清理缓存,和clean之后还是会报这个错。 查询报错信息是因为pom文件丢失才会报这个错,但是项目中pom文件是存在的,并非丢失。 由于是多项目管理,项目是有相互依

    2024年02月11日
    浏览(52)
  • Spring解决循环依赖问题

    例如,就是A对象依赖了B对象,B对象依赖了A对象。(下面的代码属于 属性的循环依赖 ,也就是初始化阶段的循环依赖,区别与底下 构造器的循环依赖 ) 问题来了: A Bean创建 —— 依赖了 B 属性 ——  触发 B Bean创建 ——  B 依赖了 A 属性 ——  需要 A Bean(但A Bean还在创建

    2024年02月12日
    浏览(44)
  • Spring解决循环依赖

    目录 什么是spring循环依赖 什么情况下循环依赖可以被处理? spring 如何解决循环依赖 创建A这个Bean的流程 答疑 疑问:在给B注入的时候为什么要注入一个代理对象? 初始化的时候是对A对象本身进行初始化,而容器中以及注入到B中的都是代理对象,这样不会有问题吗? 三级

    2024年02月22日
    浏览(48)
  • 【已解决】ERROR:The testing results of the whole dataset is empty

    使用MMdetection复现论文swin Transformer,显示错误: ERROR:The testing results of the whole dataset is empty ,与此同时,各项评价指标如AP,AR结果趋于零,F1值变成-1,loss与grad_norm爆炸增加,具体情形如下图: 图1 : 图2: 图3: 看到报错的第一眼,猜测可能是数据集的问题,所以检查了数据

    2024年01月21日
    浏览(57)
  • Spring如何解决循环依赖问题

    循环依赖问题在Spring中主要有三种情况: (1)通过构造方法进行依赖注入时产生的循环依赖问题。 (2)通过setter方法进行依赖注入且是在多例(原型)模式下产生的循环依赖问题。 (3)通过setter方法进行依赖注入且是在单例模式下产生的循环依赖问题。 在Spring中,只有第

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包