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

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

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

场景

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

解决方法一

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

解决方法二

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

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

(重构前)

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

解决方法三

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

相关推荐
曾帅1683 分钟前
idea springboot开发编译所见即所得应用不需要重启
java·spring boot·intellij-idea
青梅主码6 分钟前
介绍一下我用AI开发的一款新工具:函数图像绘制工具(二)
后端
q***017736 分钟前
Spring Boot 热部署
java·spring boot·后端
Seven9737 分钟前
SpringCloud 常见面试题(三)
java
H***997638 分钟前
Java虚拟现实案例
java·开发语言·vr
IT_陈寒1 小时前
JavaScript 闭包通关指南:从作用域链到内存管理的8个核心知识点
前端·人工智能·后端
ChineHe1 小时前
Golang并发编程篇002_Go并发基础
开发语言·后端·golang
g***72701 小时前
springBoot发布https服务及调用
spring boot·后端·https
风象南1 小时前
Spring Boot拦截器结合HMAC-SHA256实现API安全验证
后端
yifengyiyufjq1 小时前
Docker 镜像制作教程
java·docker·node.js