【问题标题】:How to keep track of all the @Autowired stuff while using Spring IoC?如何在使用 Spring IoC 时跟踪所有 @Autowired 内容?
【发布时间】:2011-08-16 13:51:07
【问题描述】:

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

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

使用 SpringSource Tool Suite 可以在配置文件的基础上创建依赖关系图。
有没有与@Autowired 一样的工具? (我知道必须在运行时创建图表)。

【问题讨论】:

  • 我以为他们正在添加对将带注释的依赖关系图形化到 STS 的支持......也许他们还没有这样做。
  • 虽然不是直接的答案,但我认为它值得关注。我发现自动连线最适合小型项目,而 xml 配置最适合大型项目。有一次,我阅读了一些同意的博客/文章,主要是由于您所看到的问题。

标签: spring ioc-container autowired


【解决方案1】:

实现 BeanFactoryAware 并将传递给 setBeanFactory() 的工厂转换为 DefaultListableBeanFactory。然后使用 DefaultListableBeanFactory.getBeanDefinitionNames() 和 DefaultListableBeanFactory.getDependenciesForBean() 生成依赖图。

【讨论】:

  • 这可能是个好主意,但要实现这一点,我必须更改我的 bean(或:我所有的 bean)。我不想那样做……
  • 不是所有的 bean,你只有一个 bean 可以生成依赖图。
  • 受您的回答启发,我创建了一个 ApplicationContextDumper。它在我们的项目中运行良好。请阅读:good-good-study.appspot.com/blog/posts/157001
  • @aleung - 我想使用你的工具,但你没有包含任何许可通知; Gist 默认不是开源的。您可以根据您选择的 OSS 许可证发布它吗? (好吧,GPL 或areo 对我没有用处)
  • 以上链接失效,请访问要点:gist.github.com/aleung/1347171。它在 WTFPL v2 下获得许可。 @JakubBochenski
猜你喜欢
  • 2016-07-15
  • 2011-05-08
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多