我知道这个问题之前已经被提出过,而且这是一个菜鸟问题,但我不知道如何解决这个问题。启动我的应用程序时出现无法解决的循环引用错误。结构如下。出了什么问题以及如何修复?
@Controller("AAA")
public class AAAImpl implements AAA {
private final BBB BBB; //this is constructor injected
}
@Service
public class BBBImpl implements BBB {
@Autowired
CCC CCC;
}
@Service ( "CCC" )
public class CCCImpl extends AbstractQueryService<FinalSeminar, Long> implements CCC {
@Resource
AAA AAA;
}
最佳答案
1) 您不需要在任何其他组件中注入(inject) Controller 。它应该仅用于处理 HTTP 请求。不要在其中包含任何业务逻辑。您可以将其编写在服务层或管理层中。
2)您收到循环引用异常的原因是您的类 AAAImpl 包含对 BBBImpl 的依赖,而 BBBImpl 又依赖于 CCCImpl,而 CCCImpl 最终又依赖于 AAA。因此,Spring 无法创建任何这些 bean。
关于java - Spring无法解析的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16726602/