SpringBoot项目循环依赖问题处理

        当启动项目时,可能出现程序不能启动的情况,查看调试日志,会提示 The dependencies of some of the beans in the application context form a cycle...

        原因是SpringBoot 从 2.6 开始默认不允许出现 Bean 循环引用。而且这个是在Bean 定义上也就是类上就不允许出现循环引用。

 解决方式

        1、允许循环引用存在

                方式1.在全局配置文件设置允许循环引用存在:

spring:
  main:
    allow-circular-references:true

                方式2.在SpringApplicationBuilder 添加设置允许循环引用:

public static void main(String[] args) {
  new SpringApplicationBuilder(DemoApplication.class).allowCircularReferences(true).run(args);
}

        2、消除循环依赖

                Spring官方的初心是不希望开发者编写循环引用的代码,也就是说未来的某个版本可能强制不能使用循环引用,因此在项目中消除循环依赖是不得不面对的问题。


版权声明:本文为zhiwenganyong原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。