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

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

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

场景

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

解决方法一

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

解决方法二

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

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

(重构前)

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

解决方法三

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

相关推荐
林小帅23 分钟前
NestJS v11 + Prisma v7 ESM 迁移配置解析
前端·javascript·后端
YuK.W26 分钟前
Leetcode100: 70.爬楼梯、118.杨辉三角、198.打家劫舍
java·算法·leetcode
IT_陈寒39 分钟前
React的setState竟然不是立刻生效的,害我调试半天
前端·人工智能·后端
这不小天嘛40 分钟前
JAVA八股——redis篇
java·开发语言·redis
逝水无殇2 小时前
C# 字符串(String)详解
开发语言·后端·c#
神奇小汤圆2 小时前
牛客网Java八股文|2026秋招面试题汇总(金九银十冲刺专用)
后端
cfm_29143 小时前
SpringBoot MockMvc
spring boot·后端·log4j
神奇小汤圆3 小时前
你的Java天花板,不是Spring Boot,是思维方式
后端
梨子同志3 小时前
Maven
后端
用户41659673693553 小时前
堡垒机 Web CLI 部署教程
后端