spring boot循环依赖解决方案,spring解决依赖循环

  spring boot循环依赖解决方案,spring解决依赖循环

  前言:

  春天的豆管一直是全系统津津乐道的。尤其是Bean的循环依赖是很多面试官最喜欢考察的2B知识点之一。

  但实际上,项目中存在Bean的循环依赖,这是代码质量低下的表现。大多数人都希望框架层给自己擦屁股,导致整个代码的设计越来越差。最后,使用一些奇怪的技巧来填补所犯的错误。

  好在SpringBoot终于受不了这种辱骂,默认禁用循环依赖!

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

  验证代码小片段:

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

  CircularDependencyA.java

  @ Component @ requiredargsconstructorpubliclasscirculardependency ya { privatefinallcirculardependencybcircb;}CircularDependencyB.java

  @ Component @ requiredargsconstructorpubliclasscirculardependencyb { privatefinallcirculardependencyacirca;}RequiredArgsConstructor注释,在lombok包中,用于实现简单的构造函数注入。不出所料,当我们启动代码时,我们报告了一个错误~ ~

  报错如下:

  thedependenciesofsomeofthebeansintheapplicationcontextformacycle:circulardependencyadefinedinfile[cir/circulardependencya.class] action:relyinguponcircularreferencesisdiscouragedandtheyareprohibitedbydefault.updateyoursapplicationtoremovedependencycyclebetween beans . A salastrestore,it maybepossible breakthe cycleautomatically by setting spring . main . allow-circular-references to true。

  当然,有些鸟人已经长大了,循环依赖无处不在,改代码越来越不现实。然后,您还可以通过在yaml中配置参数来临时打开循环依赖。

  spring . main . allow-circular-references=true看来SpringBoot对恶势力的容忍度还是不够坚定!

  绕过SpringBoot拦截的方法不止一种,比如使用@Lazy注释延迟初始化。然而这些都是治标不治本,辜负了跳羚的苦心。

  做对的事:

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

  AbstractAutowireCapableBeanFactory # allowCircularReferences/* *是否在bean之间自动trytoresolvecurereferences。*/privatebooleanallowcoungrreferences=true;很长一段时间,SpringBoot的值默认为真。但这种纵容造成了大量低质量的代码,以至于新员工一直在给老员工擦屁股。

  默认情况下,将该值设置为false是正确的做法。至少,工程师写低质量代码的时候,可以知道自己在做什么,而不是一步一步拖延隐患,让代码腐败。

  不得不称赞SpringBoot。太好了!

  本文关于SpringBoot禁止循环依赖的解释到此为止。关于SpringBoot循环依赖的更多信息,请搜索之前关于popular IT的文章或者继续浏览以下相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • spring编程式事务处理,spring编程事务
  • spring编程式事务处理,spring编程事务,详解Spring学习之编程式事务管理
  • spring的核心功能模块有几个,列举一些重要的spring模块
  • spring的核心功能模块有几个,列举一些重要的spring模块,七个Spring核心模块详解
  • spring注解和springmvc的注解,SpringMVC常用注解
  • spring注解和springmvc的注解,SpringMVC常用注解,详解springmvc常用5种注解
  • spring实现ioc的四种方法,spring的ioc的三种实现方式
  • spring实现ioc的四种方法,spring的ioc的三种实现方式,简单实现Spring的IOC原理详解
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况,Spring事务失效问题分析及解决方案
  • spring5.0新特性,spring4新特性
  • spring5.0新特性,spring4新特性,spring5新特性全面介绍
  • spring ioc以及aop原理,springmvc aop原理
  • spring ioc以及aop原理,springmvc aop原理,深入浅析Spring 的aop实现原理
  • Spring cloud网关,spring cloud zuul作用
  • 留言与评论(共有 条评论)
       
    验证码: