Spring|Spring Boot产生环形注入的解决方案

目录

  • Spring Boot产生环形注入
    • 错误产生原因
    • 解决方法
  • Spring Boot循环注入的坑
    • 一般循环注入的原因是
    • 解决办法
【Spring|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注解
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读