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

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


Dagger2的几个注解:

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

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

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

类。

Component如何得到module?

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

法。



Module如何得到model?

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

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

二者可以共存。



Dagger2依赖嵌套:

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

容易发生的异常: