如何对依赖注入内容进行概述?

时间:2014-01-03 15:49:12

标签: java eclipse guice

您如何了解哪些对象被注入哪里?我有一个相当小的项目,我使用guice,而不是因为我真的需要它(鉴于项目仍然很小),而是因为我想要更好地了解它。

我已经开始松开概述只有~10个班级;是否有工具可以分析代码以显示依赖关系图?

这样可以更容易地快速查看我忘记了什么或者我需要单点范围注射的位置。还有guice,很多东西都是隐含的,能够明确地看到这些东西将有助于将来进行调试。

1 个答案:

答案 0 :(得分:5)

我有几个原则可以帮助使用Guice管理依赖项。

  1. 仅在模块 中保留所有绑定。不要使用实时绑定的东西。我的意思是,不要使用@Singleton@ImplementedBy@ProvidedBy,即所有描述的here。也可以尝试在模块顶部调用binder.requireExplicitBindings() - 它会强制您始终明确地绑定您的依赖项。当您将所有依赖项保留在模块中时,您可以轻松找到由哪个实现实现的接口。这简化了绑定很多的导航。

  2. 尽量保持模块尽可能小,然后在创建注入器时直接组合它们(直接通过createInjector()调用或使用除install()其他模块之外什么都不做的中央模块)。每个模块应对其自身的应用程序负责,并应相应地命名。您的模块也不应包含复杂的初始化和动态绑定代码。通过这种方式,您将能够非常轻松地找到负责应用程序某些部分的模块。

  3. 这些原则非常简单,但它们使依赖管理非常容易。

    此外,您可以使用special Guice extension可视化依赖关系图。它有它的缺点,并且它已经使用它已经有一段时间了,所以我不能给你关于如何避免这些错误的确切链接,但谷歌搜索它不会花费很长时间。