循环依赖注入嵌套异常,原因:a依赖b,b依赖c,c依赖a,在使用 @Autowired 就会出现如下异常。
[11:22:17:166] [ERROR] - org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter.report(LoggingFailureAnalysisReporter.java:42) -
***************************
APPLICATION FAILED TO START
***************************
Description:
The dependencies of some of the beans in the application context form a cycle:
activityController (field private com.yryj.service.activity.ActivitysIssueService com.yryj.controller.activity.ActivityController.activitysIssueService)
↓
activitysIssueServiceImpl (field private com.yryj.service.user.impl.PublisherImpl com.yryj.service.activity.impl.ActivitysIssueServiceImpl.publisher)
↓
publisherImpl (field com.yryj.service.mutually.MutuallyQMessageService com.yryj.service.user.impl.PublisherImpl.mutuallyQMessageService)
↓
mutuallyQMessageServiceImpl (field private com.yryj.service.message.MessageInformationService com.yryj.service.mutually.impl.MutuallyQMessageServiceImpl.messageInformationService)
↓
messageInformationImpl (field private com.yryj.service.dynamic.state.DynamicStateIssueMessageService com.yryj.service.message.impl.MessageInformationImpl.dynamicStateIssueMessageService)
↓
dynamicStateIssueMessageServiceImpl (field private com.yryj.service.article.issue.ArticleIssueMessageService com.yryj.service.dynamic.state.impl.DynamicStateIssueMessageServiceImpl.articleIssueMessageService)
↓
articleIssueMessageServiceImpl (field private com.yryj.service.answer.issue.AnswersIssueMessageService com.yryj.service.article.issue.impl.ArticleIssueMessageServiceImpl.answersIssueMessageService)
┌─────┐
| answersIssueMessageServiceImpl defined in file [D:\SVN\zgryrj\target\classes\com\yryj\service\answer\issue\impl\AnswersIssueMessageServiceImpl.class]
└─────┘
解决办法:
1.新建接口,防止循环依赖,。
2.尽量依赖注入 mapper 层,也就是数据处理层。