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

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

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

场景

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

解决方法一

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

解决方法二

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

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

(重构前)

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

解决方法三

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

相关推荐
const_qiu1 分钟前
第三章 08:3.10 本章小结
java·人工智能
Pniubi2 分钟前
快速排序(力扣基础)(递归)
java·数据结构·算法
CarIise19 分钟前
Spring MVC 请求参数绑定与常用注解2
java·spring·mvc
七夜zippoe26 分钟前
Spring Boot 接通义千问:从拿 Key 到第一个对话接口跑通(保姆级)
java·spring boot·后端
SimonKing28 分钟前
别再花钱调 OCR 接口了!这个国产开源工具,免费还能离线跑
java·后端·程序员
Nebula_g28 分钟前
SpringBoot企业级实战项目—云禾外卖—SpringBoot常用注解解析
java·网络·数据库·spring boot·后端·spring·javase
const_qiu29 分钟前
第三章 07:3.9 能力收束与统一入口
java·人工智能
const_qiu33 分钟前
第三章 05:3.7 结构化输出与程序化消费
java·人工智能
企业数字化笔记1 小时前
租户停用后数据和任务怎么处理?冻结、恢复与保留策略的实现
android·java·spring boot
CarIise1 小时前
Spring MVC 请求参数绑定与常用注解
java·spring·mvc