【问题标题】:Can someone provide a good explanation of Dagger 2?有人可以对 Dagger 2 提供一个很好的解释吗?
【发布时间】:2015-11-29 11:49:15
【问题描述】:

我真的很难理解 Dagger 2 依赖注入系统。

我理解使用 @Inject 注释告诉 Dagger 我们需要在这里提供某种类型的实例。

但是,我不了解其他组件的各种角色,例如:@Module@Component@Provides,以及它们如何协同工作以向适当的依赖项提供适当的实例。

谁能简明扼要地解释一下?

【问题讨论】:

    标签: java android dependency-injection dagger-2


    【解决方案1】:

    @Module:模块是其方法提供依赖的类,所以我们 定义一个类并用 @Module 注释它,这样 Dagger 就会知道 在哪里找到依赖关系以满足它们何时 构造类实例。模块的一个重要特点是 它们被设计成可以分割和组合在一起(对于 例如,我们将看到在我们的应用程序中,我们可以有多个组合 模块)。

    @Component:组件基本上是注入器,可以说是之间的桥梁 @Inject@Module,它的主要职责是把 两者一起。他们只是给你所有类型的实例 定义,例如,我们必须用 @Component 注释接口 并列出构成该组件的所有 @Modules,如果有的话 其中一些丢失了,我们在编译时得到错误。所有组件 知道它通过它提供的依赖关系的范围 模块。

    @Provide:在模块内部我们定义了包含这个注解的方法 它告诉 Dagger 我们要如何构建和提供这些 提到的依赖关系。

    我建议您阅读以下内容:

    我想这将有助于理解。

    【讨论】:

      【解决方案2】:

      您可以在此处找到有用的 Dagger2 示例项目和教程。

      Dagger 2 working sample project with MVP

      Video tutorial

      Practical tutorial

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-29
        • 2019-09-14
        • 1970-01-01
        • 2020-01-22
        • 1970-01-01
        相关资源
        最近更新 更多