解决依赖循环the dependency cycle between beans could not be broken
报错代码:
Despite circular references being allowed, the dependency cycle between beans could not be broken
今天用Java写个功能模块,突然出现了标题所示的错误。原因是,我在A类中引用了B类,然后在B类中引用了A类。报错信息如下图:
刹那间,我懵了,以前我这么干都还好好的,怎么现在突然就这样啊~
后来查阅各种资料才知道,原来,时代变了!!!!
原来从SpringBoot 2.6.x开始,SpringBoot就不推荐使用循环依赖,要从底层逐渐引导开发者书写规范的代码。
哼~ very very good!
但开发过程中难免还是会遇到依赖循环的的情况,总得有个过程嘛。此处便给出两个解决方案:
一、粗糙、强制的做法,不到万不得已不建议:
在配置文件中,添加以下配置:
spring:
main:
# 该属性设为true,就是允许循环引用存在,默认值为false
allow-circular-references: true
二、比较gentlemen、比较优雅的方法:
该方法也算是Spring官方推荐的做法,他虽然不推荐使用循环依赖,但还是给开发者留了一条路。
在A类中引用B类:
public B getB() {
return SpringUtil.getBean(B.class);
}
// 使用B中的方法时,如下:
getB().methodOfB();
在B类中引用A类:
public A getA() {
return SpringUtil.getBean(A.class);
}
// 使用A中的方法时,如下:
getA().methodOfA();
不过,既然Spring官方不推荐/禁止使用循环依赖,还是有一定的考量,开发者还是尽量避免出现如此情况。
循环引用乍看没什么问题,但深究起来,出现此种情况,就体现出了设计的不合理。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkikcc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13