【Spring循环依赖报错】The dependencies of some of the beans in the application context form a cycle
短信预约 -IT技能 免费直播动态提醒
【Spring循环依赖报错】The dependencies of some of the beans in the application context form a cycle
一、报错信息
***************************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 注解。
@Autowired @Lazy private IArticleService articleService;
延迟互相依赖的其中一个bean的加载,从而解决Spring在初始化bean的时候不知道先初始化哪个的问题。
来源地址:https://blog.csdn.net/pdsu_Zhe/article/details/127657640
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341