dagger2学习

 

转载,这篇讲的也太清楚了吧,建议看原文

 

 

 

Inject,Component,Module,Provides是dagger2中的最基础最核心的知识点。奠定了dagger2的整个依赖注入框架。

Inject主要是用来标注目标类的依赖和依赖的构造函数
Component它是一个桥梁,一端是目标类,另一端是目标类所依赖类的实例,它也是注入器(Injector)负责把目标类所依赖类的实例注入到目标类中,同时它也管理Module。
Module是一个简单工厂模式,Module可以包含创建类实例的方法,这些方法用Provides来标注。
关联起来:

         class A{

                @inject

                public B b;

         }

        class B{

                @inject

                public B(){

                }

          }

目标类A 依赖了类B,要想在A类中使用B就需要实例化B,component 负责把实例化好的B赋值给A类中的b,

而component并不具备初始化B的能,使用component就需要到提供B的地方去拿,这个地方就是Module工厂,module工厂如下:

@module

public class ModuleTest{

               @provide

              B provideB(){

                   return new B();

              }

}

component是如果拿到module中的B的呢,看一下component如何操作:

@component(modules = {ModuleTest.class})

public interface TestComponent{

                  void inject(AActivity A);

}

也就是component通过modules引用了module拿到B;、

原文链接:https://blog.csdn.net/change987654321/article/details/78632022

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值