Dagger学习笔记

@Inject 提供依赖的构造函数,或者须要依赖的成员变量git

@Module 提供依赖,实例化的地方( 使用module实例化,方便测试的时候替换成其余对象,而这也是和构造方法注入的区别,若是用构造方法注入,则作不到测试的时候随意替换)github

@Component 一个链接者,把module和须要依赖的地方链接起来函数

步骤1:查找Module中是否存在建立该类的方法。
步骤2:若存在建立类方法,查看该方法是否存在参数
步骤2.1:若存在参数,则按从步骤1开始依次初始化每一个参数
步骤2.2:若不存在参数,则直接初始化该类实例,一次依赖注入到此结束
步骤3:若不存在建立类方法,则查找Inject注解的构造函数,看构造函数是否存在参数
步骤3.1:若存在参数,则从步骤1开始依次初始化每一个参数
步骤3.2:若不存在参数,则直接初始化该类实例,一次依赖注入到此结束

 singleton scope can not be used in unscope component测试

beforespa

 

after3d

void inject(Activity aty); void inject(Fragment fragment);code

per activity(每一个Activity一个Activity)component

 

https://github.com/chiuki/friendspell chiuki写的,包含了dagger2与测试对象

相关文章
相关标签/搜索