一篇不错的Dagger2文章
2017-09-19 本文已影响0人
无_理
[Dagger2学习入门]https://segmentfault.com/a/1190000008677663#articleHeader9
一、@Inject
主要是用来标注目标类的依赖和依赖的构造函数。
二、@Provides
Module和Provides是为解决接口、第三方类库等没有构造方法情景而生的。
@Provides 是module类对外提供实例方法的注解,必须在 @Moudle 内部。
@Provides 修饰的方法的方法名建议以 provide 开头。
三、@Module
@Module 一般用来标记类,该注解告知 Dagger2 可以到该类中寻找需要的依赖。Module其实是一个简单工厂模式,Module里面的方法基本都是创建类实例的方法。
四、@Component
Component它是一个桥梁,一端是目标类,另一端是目标类所依赖类的实例,它也是注入器(Injector)负责把目标类所依赖类的实例注入到目标类中,同时它也管理Module。
Component 可以组合不同的 Module 和 Component。
五、@Subcomponent
@Subcomponent 功能类似 component 的 dependencies。但是使用 @Subcomponent 不需要在父 component 中显式添加子 component 需要用到的对象,只需要添加返回子 Component 的方法即可,子 Component 能自动在父 Component 中查找缺失的依赖。
六、@Qualifier
用于标识、区分。
七、@Scope(作用域)
范围