如何解决Spring Boot产生环形注入

这篇文章主要介绍“如何解决Spring Boot产生环形注入”,在日常操作中,相信很多人在如何解决Spring Boot产生环形注入问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决Spring Boot产生环形注入”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • Spring Boot产生环形注入

    • 错误产生原因

    • 解决方法

  • Spring Boot循环注入的坑

    • 一般循环注入的原因是

    • 解决办法

Spring Boot产生环形注入

***************************
APPLICATION FAILED TO START
***************************

Description:

The dependencies of some of the beans in the application context form a cycle:

| MyController (field private com.zhxy.service.AService com.zhxy.controller.MyController.BService)
↑ ↓
| BService
└─────┘

启动spring boot报以上错误

错误产生原因

BService里面注入AService使用,AService里面又注入BService使用

解决方法

在BService的实现类对 AService 加上Spirng的注解 @Lazy

@Autowired 
@Lazy 
private AService aService ;

Spring Boot循环注入的坑

一般循环注入的原因是

A依赖注入b,b注入A形成一个闭环,导致spring在创建bean的时候具体不知道先创建哪一个,会抛出bean创建异常

解决办法

将控制台最后打印的bean复制出来,然后全局搜索项目,在所有注入这个bean的地方加上@Lazy注解

到此,关于“如何解决Spring Boot产生环形注入”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!