如何在大型 spring 项目中查找循环引用?

How to find circle references in a big spring project?

我刚刚更新了一个大 Java 项目的 spring 版本,它向我报告了一些警告,例如:

WARN org.springframework.beans.factory.support.DefaultListableBeanFactory - Bean creation exception on FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'addResponseInterceptor' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'httpClient' while setting bean property 'targetObject'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'httpClient': Requested bean is currently in creation: Is there an unresolvable circular reference?

我在代码中发现,有很多类使用注解@Autowired来注入依赖,一定有问题

但是由于类太多了(50多条),我真的很难找出哪里错了。搞了好几个小时了,还没找到原因。

有什么方法可以更轻松地解决问题?

也许你可以试试JDepend。在网站上它说显示项目中依赖注入周期的指示。老实说我没用过。

祝你好运