Spring Boot解决循环依赖的几种办法

说明:Spring Boot 循环依赖,是指两个或两个以上的 Bean 对象,你装配我,我装配你,形成一个循环,导致项目启动时,无法完成 Bean 的初始化,报下面这种错误。

本文介绍解决循环依赖的几种方法

场景

创建了两个 Service 实现类,互相注入对方

解决方法一

最简单,最快捷的,是在其中一个 Bean 装配时,加上 @Lazy 注解,懒加载,如下:

解决方法二

重构代码,引入中间层,将互相使用到的方法加入到新的 Service 中,然后装配这个新的 Service,如下:

为了解决 Service1、Service2 之间的循环依赖,要额外创建两个 Service,结构如下:

(重构前)

(重构后:将 Service1、Service2 中互相调用的代码搬到 Service3、Service4中)

解决方法三

不要用自动装配,手动从 Spring 容器中获取,如下:

相关推荐
码农-0041 分钟前
Springboot 集成 Ehcache操作数据库显示SQL语句设置
数据库·spring boot·sql
IT_陈寒3 分钟前
Redis雪崩把我坑惨了,三招教你躲过去
前端·人工智能·后端
ikoala3 分钟前
同样叫 Harness,DeepSeek Harness 和 Pi 根本不在同一层
前端·后端·ai编程
用户3721574261358 分钟前
如何使用 Java 创建 Excel 数据透视表
java
大白808 分钟前
多模态大模型能干什么?图文音视频统一理解,正在重画 AI 的边界
后端
花卷持续成长8 分钟前
“码上面试”项目学习02
后端
mldong8 分钟前
同一个审批流引擎,我写了两次:一次 11226 行,一次 7036 行
后端·架构
百万蹄蹄向前冲8 分钟前
一张平面图把学校做成2D游戏
前端·人工智能·后端
沙蒿同学9 分钟前
一个人做完一套企业级系统,赚到了第一个 1000 块
vue.js·后端·go
机器之心9 分钟前
突发:Claude自主发现未知生物系统,或能编辑基因
前端·人工智能·后端