如何在使用SpringIOC时跟踪所有@Autowired内容?

如何在使用SpringIOC时跟踪所有@Autowired内容?,spring,ioc-container,autowired,Spring,Ioc Container,Autowired,在这个问题上,大多数人回答说,如果可能的话,他们宁愿不使用配置文件。乍一看,这似乎是个好答案 然而,一旦你有了一个相当大的应用程序,它使用Spring IoC并使用注解@Autowired、@Service等自动连接所有东西。你必须解决这个问题:你不再能够跟踪你的bean依赖关系。 你是怎么处理的 使用SpringSource工具套件,可以根据配置文件创建依赖关系图。 有没有任何工具可以对@Autowired stuff进行同样的处理?(我知道必须在运行时创建图形)。实现BeanFactoryA

在这个问题上,大多数人回答说,如果可能的话,他们宁愿不使用配置文件。乍一看,这似乎是个好答案

然而,一旦你有了一个相当大的应用程序,它使用Spring IoC并使用注解@Autowired、@Service等自动连接所有东西。你必须解决这个问题:你不再能够跟踪你的bean依赖关系。
你是怎么处理的

使用SpringSource工具套件,可以根据配置文件创建依赖关系图。

有没有任何工具可以对@Autowired stuff进行同样的处理?(我知道必须在运行时创建图形)。

实现BeanFactoryAware并将传递到setBeanFactory()的工厂强制转换为一个。然后使用DefaultListableBeanFactory.getBeanDefinitionNames()和DefaultListableBeanFactory.getDependenciesForBean()生成依赖关系图。

我以为他们在添加对将带注释的依赖关系绘制到STS中的支持。。。也许他们还没有这么做。虽然没有一个直接的答案,但我认为这值得关注。我发现auto wired最适合于较小的项目,而xml配置最适合于较大的项目。有一次,我读了一些博客/文章,这些博客/文章都表示同意,主要是因为你看到的问题。这可能是个好主意,但要实现这一点,我必须改变我的bean(或者:我的所有bean)。我不想这样做…不是所有的bean,你只需要一个bean来生成依赖关系图。受你答案的启发,我创建了一个ApplicationContextDumper。它在我们的项目中运行良好。请阅读:@aleung-我想使用你的工具,但你没有包括任何许可通知;GIST在默认情况下不是开源的。你能在你选择的OSS许可证下发布它吗?(GPL或areo对我没有用处)以上链接已断开,请访问要点:。它是根据WTFPL v2许可的@雅库博琴斯基