一、报错信息
***************************
APPLICATION FAILED TO START
***************************
Description:
The dependencies of some of the beans in the application context form a cycle:
categoryController (field private com.vector.service.ICategoryService com.vector.controller.CategoryController.ICategoryService)
↓
categoryService (field private com.vector.service.IArticleService com.vector.service.impl.CategoryServiceImpl.articleService)
┌─────┐
| articleServiceImpl (field private com.vector.service.IUserService com.vector.service.impl.ArticleServiceImpl.iUserService)
↑ ↓
| userServiceImpl (field private com.vector.service.IArticleService com.vector.service.impl.UserServiceImpl.iarticleService)
└─────┘
二、分析原因
类A需要通过构造函数注入的类B的实例(或者B中声明的Bean),而类B需要通过构造函数注入的类A的实例(或者A中声明的Bean),导致循环依赖注入。
三、解决方案
解决方案一
其中一个不要引用对方,避免循环依赖,代码解耦肯定是最优解。
解决方案二
选择其中一个使用@Lazy 注解。文章来源:https://www.toymoban.com/news/detail-725261.html
@Autowired
@Lazy
private IArticleService articleService;
延迟互相依赖的其中一个bean的加载,从而解决Spring在初始化bean的时候不知道先初始化哪个的问题。文章来源地址https://www.toymoban.com/news/detail-725261.html
到了这里,关于【Spring循环依赖报错】The dependencies of some of the beans in the application context form a cycle的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!