网易首页 > 网易号 > 正文 申请入驻

痛快!SpringBoot终于禁掉了循环依赖!

0
分享至

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

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

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

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

  验证代码小片段

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

  CircularDependencyA.java

  @Component
@RequiredArgsConstructor
public class CircularDependencyA {
private final CircularDependencyB circB;

  CircularDependencyB.java

  @Component
@RequiredArgsConstructor
public 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#allowCircularReferences

  /** Whether to automatically try to resolve circular references between beans. */
private boolean allowCircularReferences = true;

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

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

  不得不为SpringBoot点个赞。真棒!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
沪市部分股票深夜成交,业内:不影响下日开盘指数

沪市部分股票深夜成交,业内:不影响下日开盘指数

第一财经资讯
2024-09-28 13:22:27
山东小伙去鼓楼拍照,女生误入镜头一眼心动,人已找到缘分太甜了

山东小伙去鼓楼拍照,女生误入镜头一眼心动,人已找到缘分太甜了

子芫伴你成长
2024-08-06 22:42:38
辽宁籍教练齐聚北京合影,吴乃群C位,4人仍是CBA主帅,影响巨大

辽宁籍教练齐聚北京合影,吴乃群C位,4人仍是CBA主帅,影响巨大

篮球资讯达人
2024-09-28 20:34:47
向全球宣布,中国歼15D大规模量产,摧毁美舰宙

向全球宣布,中国歼15D大规模量产,摧毁美舰宙

智能新农情
2024-09-29 04:39:40
机构首席经济学家热议:A股涨势还能持续多久?

机构首席经济学家热议:A股涨势还能持续多久?

第一财经资讯
2024-09-28 19:02:26
贵州发布任前公示,滕伟华拟任省直单位正职

贵州发布任前公示,滕伟华拟任省直单位正职

鲁中晨报
2024-09-28 20:29:01
国足26人名单曝光,朱辰杰+韦世豪遗憾无缘出战印尼

国足26人名单曝光,朱辰杰+韦世豪遗憾无缘出战印尼

阿牛体育说
2024-09-29 07:38:15
大结局要来了?当着泽连斯基面,王毅提出三点主张!轰动全球舆论

大结局要来了?当着泽连斯基面,王毅提出三点主张!轰动全球舆论

日风的故事屋
2024-09-28 18:37:35
叶柯被扒曾参加名媛培训班,一节课29800包分配,和天王嫂是同学

叶柯被扒曾参加名媛培训班,一节课29800包分配,和天王嫂是同学

小盖纪实
2024-09-28 15:50:23
银行人员的忠告:银行卡再别开通短信通知了,别再不当回事

银行人员的忠告:银行卡再别开通短信通知了,别再不当回事

娱乐圈的大爆炸
2024-09-26 22:20:14
不知不觉中,印度包围圈已然成型了?

不知不觉中,印度包围圈已然成型了?

日风的故事屋
2024-09-25 19:27:35
悬念来了?英超射手榜:哈兰德10球领跑,帕尔默6球第二

悬念来了?英超射手榜:哈兰德10球领跑,帕尔默6球第二

直播吧
2024-09-29 07:43:03
马奎尔本赛季后离开曼联,另一人亦免费转会!拉爵仍要签大英铁卫

马奎尔本赛季后离开曼联,另一人亦免费转会!拉爵仍要签大英铁卫

罗米的曼联博客
2024-09-28 07:48:53
生产歼20的成飞集团,却被174亿低价收购,新主人意欲何为?

生产歼20的成飞集团,却被174亿低价收购,新主人意欲何为?

文雅笔墨
2024-09-28 17:28:34
买燃油车别只盯着丰田,这六大品牌真能10年无大修,且油耗还低

买燃油车别只盯着丰田,这六大品牌真能10年无大修,且油耗还低

阿珂谈汽车
2024-09-26 18:04:03
名场面来了!郑钦文又把对手打到摔拍子,全场喝彩,对方教练脸黑

名场面来了!郑钦文又把对手打到摔拍子,全场喝彩,对方教练脸黑

嘴炮体坛
2024-09-28 20:27:52
炸裂!捐精有多乱,双方直接在宾馆完成怀孕过程,一次几百到几万

炸裂!捐精有多乱,双方直接在宾馆完成怀孕过程,一次几百到几万

小彭谈历史
2024-09-21 12:40:15
王思聪新加坡游玩遭偷拍,光膀子形象曝光,拒绝合影引争议

王思聪新加坡游玩遭偷拍,光膀子形象曝光,拒绝合影引争议

明星爆料客
2024-09-26 08:08:54
宋佳捐款百万,还清零片酬,都是扮演张桂梅,两人的演技高下立判

宋佳捐款百万,还清零片酬,都是扮演张桂梅,两人的演技高下立判

明月历史说
2024-09-28 17:20:50
唯一在世的中共一代领导人,如今107岁了。

唯一在世的中共一代领导人,如今107岁了。

华人星光
2024-06-24 17:05:57
2024-09-29 08:24:49
小姐姐味道
小姐姐味道
十年架构,日百亿流量
328文章数 1204关注度
往期回顾 全部

科技要闻

豆包“王炸”,字节版Sora来了,有多厉害

头条要闻

媒体:纳斯鲁拉遇袭身亡 会给真主党造成非常大的打击

头条要闻

媒体:纳斯鲁拉遇袭身亡 会给真主党造成非常大的打击

体育要闻

神了!帕尔默大四喜 切尔西4-2逆转布莱顿

娱乐要闻

噩耗!英国皇家影星玛吉史密斯离世

财经要闻

沪市部分股票深夜成交?回应来了!

汽车要闻

售11.99-14.69万元 深蓝2025款SL03正式上市

态度原创

健康
家居
房产
教育
游戏

花18万治疗阿尔茨海默病,值不值?

家居要闻

现代奶油风 整屋浪漫气息

房产要闻

实地测评:比商品房贵,看“一线村景”!海口这个安居盘,你会买吗?

教育要闻

一年级:18年前18岁,那么18年后多少岁?出错率高

100T横扫SHG,晋级下一轮!网友:日本还是打不过美国!

无障碍浏览 进入关怀版