看博客之前请先走出这个误区:

    module和model,前者指创建依赖对象的对象,后者指的依赖的对象(也就是模型bean)


Dagger2的几个注解:

  1. @Module,提供创建依赖对象的方法。

    注意:不能有两个@Provides方法返回同一个Model,否则会报以下异常:

    wKiom1cgTnrD8iYIAAJf819IzLw409.png

  2.@Component,链接Module和inject的对象。编译之后会自动生成对应的DaggerXxxComponent

     类。

    Component如何得到module

    通过DaggerXxxComponent.xxxModule方法设置,如果没有设置,默认调用Module的无参构造方

    法。

    


     Module如何得到model

     1)给依赖对象的本身的构造函数加@Inject注解

     2)通过加了@Module的Module类的加了@Provide注解的方法

     二者可以共存。



Dagger2依赖嵌套:   

    1.一个Component依赖另外一上Component,注意书写的格式

       容易发生的异常:

       wKioL1cgViySGzlXAAA1M8wAStI045.png