iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot禁止循环依赖实例分析
  • 386
分享到

SpringBoot禁止循环依赖实例分析

2023-06-30 14:06:13 386人浏览 独家记忆
摘要

这篇文章主要讲解了“SpringBoot禁止循环依赖实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springBoot禁止循环依赖实例分析”吧!前言:Spring的Bean管理,一直

这篇文章主要讲解了“SpringBoot禁止循环依赖实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springBoot禁止循环依赖实例分析”吧!

前言:

Spring的Bean管理,一直是整个体系中津津乐道的东西。尤其是Bean的循环依赖,更是很多面试官最喜欢考察的2B知识点之一。

但事实上,项目中存在Bean的循环依赖,是代码质量低下的表现。多数人寄希望于框架层来给擦屁股,造成了整个代码的设计越来越糟,最后用一些奇技淫巧来填补犯下的错误。

还好,SpringBoot终于受不了这种滥用,默认把循环依赖给禁用了!

从2.6版本开始,如果你的项目里还存在循环依赖,SpringBoot将拒绝启动!

SpringBoot禁止循环依赖实例分析

验证代码小片段:

为了验证这个功能,我们只需要两段小代码。

CircularDependencyA.java

@Component@RequiredArgsConstructorpublic class CircularDependencyA {    private final CircularDependencyB circB;}

CircularDependencyB.java

@Component@RequiredArgsConstructorpublic class CircularDependencyB {    private final CircularDependencyA circA;}

RequiredArgsConstructor注解,是lombok包里面的,用来实现简单的构造器注入。不出所料,当我们启动代码的时候,报错了~~

报错如下:

The dependencies of some of the beans in the application context fORM a cycle:
┌─────┐
|  circularDependencyA defined in file [cir/CircularDependencyA.class]
↑     ↓
|  circularDependencyB defined in file [cir/CircularDependencyB.class]
└─────┘
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.

当然,有些鸟人已经玩大了,循环依赖到处都是,改代码变的越来越不现实。那你还可以通过在yaml里配置参数来临时开启循环依赖。

spring.main.allow-circular-references=true

看来SpringBoot对恶势力的容忍能力还是不够坚决啊!

绕过SpringBoot这个拦截的方法不止一种,比如使用@Lazy注解进行延迟初始化。但这些都是治标不治本,辜负了SpringBoot的一片苦心。

做对的事:

其实,我们一直把代码往下找下去,会发现这个开关,其实是Spring的功能。

AbstractAutowireCapableBeanFactory#allowCircularReferencesprivate boolean allowCircularReferences = true;

很长一段时间,SpringBoot这个值都是默认为true的。但这种纵容造成了大批低质量的代码产生,以至于新员工一直在给老员工擦屁股。

把这个值默认设置为false,是坚持做对的事情。起码,在工程师编写出质量不高的代码时,能够知道他自己在做什么,而不是把隐患一步步的推迟,任代码腐败。

感谢各位的阅读,以上就是“SpringBoot禁止循环依赖实例分析”的内容了,经过本文的学习后,相信大家对SpringBoot禁止循环依赖实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: SpringBoot禁止循环依赖实例分析

本文链接: https://www.lsjlt.com/news/329426.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot禁止循环依赖实例分析
    这篇文章主要讲解了“SpringBoot禁止循环依赖实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot禁止循环依赖实例分析”吧!前言:Spring的Bean管理,一直...
    99+
    2023-06-30
  • SpringBoot循环依赖问题实例分析
    本文小编为大家详细介绍“SpringBoot循环依赖问题实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot循环依赖问题实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。简介说明本文介...
    99+
    2023-07-02
  • 关于SpringBoot禁止循环依赖解说
    前言: Spring的Bean管理,一直是整个体系中津津乐道的东西。尤其是Bean的循环依赖,更是很多面试官最喜欢考察的2B知识点之一。 但事实上,项目中存在Bean的循环依赖,是代...
    99+
    2024-04-02
  • Spring循环依赖原理实例分析
    本篇内容介绍了“Spring循环依赖原理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介概述@Autowired进行属性注入可以解...
    99+
    2023-07-02
  • Java中的Spring循环依赖实例分析
    这篇文章主要讲解了“Java中的Spring循环依赖实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的Spring循环依赖实例分析”吧!什么是循环依赖?很简单,就是A对象依赖...
    99+
    2023-06-30
  • SpringBoot中@Async引起循环依赖的示例分析
    这篇文章将为大家详细讲解有关SpringBoot中@Async引起循环依赖的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。事故时间线本着"先止损、后复盘分析"的原则,我们来看一...
    99+
    2023-06-29
  • springboot bean循环依赖实现以及源码分析
    目录前言1、什么叫循环依赖呢 2、具体出现循环依赖的代码逻辑 3、解决循环依赖的代码实现 总结前言 本文基于springboot版本2.5.1 <parent>...
    99+
    2024-04-02
  • 分析Spring循环依赖的坑
    本篇内容介绍了“分析Spring循环依赖的坑”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 前言这两天工作遇到了一个挺有意思的Sprin...
    99+
    2023-06-16
  • Spring解决循环依赖的示例分析
    这篇文章主要介绍Spring解决循环依赖的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  这里我们先借用一张图来通过视觉感受一下,看图:    其实,通过上面图片我想你应该能看图说话了,所谓的循环依赖其实就...
    99+
    2023-06-25
  • Springboot详细讲解循环依赖
    目录一、循环依赖二、循环依赖形成条件(使用构造器注入)三、循环依赖形成条件(@Aysnc注解的bean生成了对象的代理)四、针对以上问题对Spring如何解决循环依赖进行详细阐述一、...
    99+
    2024-04-02
  • Java Spring 循环依赖解析
    目录1、常见问题2、什么是循环依赖?3、循环依赖说明4、BeanCurrentlyInCreationException5、依赖注入的两种方式方式一:构造器方式注入依赖方式二:以 s...
    99+
    2024-04-02
  • 深度解析SpringBoot中@Async引起的循环依赖
    目录事故时间线猜想什么是循环依赖什么是@Async啊,昨晚发版又出现了让有头大的循环依赖问题,按理说Spring会为我们解决循环依赖,但是为什么还会出现这个问题呢?为什么在本地、UA...
    99+
    2024-04-02
  • spring循环依赖策略解析
    循环依赖所谓循环依赖就是多个Bean之间依赖关系形成一个闭环,例如A->B->C->...->A 这种情况,当然,最简单的循环依赖就是2个Bean之间互相依赖:A->B(A依赖B), B->A(B依赖A)...
    99+
    2023-05-31
    spring 循环 依赖策略
  • springboot怎么解决循环依赖问题
    在Spring Boot中解决循环依赖问题,可以尝试以下几种方法:1. 使用构造器注入:将循环依赖的对象注入到构造器中,并且使用`@...
    99+
    2023-09-27
    springboot
  • springboot中maven配置依赖的示例分析
    这篇文章主要介绍springboot中maven配置依赖的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:我们通过引用spring-boot-starter-parent,添加spring-boot-...
    99+
    2023-05-30
    springboot maven
  • angular依赖注入实例分析
    这篇“angular依赖注入实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“angu...
    99+
    2024-04-02
  • SpringBoot循环依赖的症状和解决方案
    目录什么是循环依赖?问题及症状ComponentAComponentB错误解决方法构造器注入的案例延迟注入的案例接口隔离的案例什么是循环依赖? 循环依赖是指在Spring Boot ...
    99+
    2023-05-15
    Java SpringBoot循环依赖 SpringBoot循环依赖 解决SpirngBoot循环依赖
  • springboot解决循环依赖的方法有哪些
    在Spring Boot中,解决循环依赖的方法主要有以下几种:1. 使用构造函数注入:将循环依赖的Bean,通过构造函数的方式注入到...
    99+
    2023-09-17
    springboot
  • springboot单元测试依赖踩坑实例源码分析
    本文小编为大家详细介绍“springboot单元测试依赖踩坑实例源码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“springboot单元测试依赖踩坑实例源码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-05
  • ASP.NET Core依赖注入实例分析
    今天小编给大家分享一下ASP.NET Core依赖注入实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。ASP...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作