Dagger2的简单使用

Dagger2的简单使用

1.简介

Dagger2,起源于Square的Dagger,是一个完全在编译期间进行的依赖注入框架,完全去除了反射。

2.环境配置

在build.gradle中配置
在这里插入图片描述在这里插入图片描述

3.入门实例

创建一个bean类,看dagger2是如何注入。
在这里插入图片描述
在这里插入图片描述

正常情况下我们都是new对象,但是使用dagger2呢?
在这里插入图片描述

只需要一个@Inject就可以得到这个对象,看似简单,但是里面却又大学问,我们接下来看看dagger2是怎么创建对象的。
在这里插入图片描述
这里有两个注解@Module和@Provides,

最后需要一个容器将@Module中提供的类存放进去,然后在与要注入的类做关联:
在这里插入图片描述
@Component表示该接口是一个容器并且与MainModule关联,而inject(MainActivity activity);则是暴露给需要注入类的方法。

然后在MainActivity中将MainComponent关联起来:
在这里插入图片描述红框中的代码就是将MainActivity和MainModule通过Component关联起来的代码,程序检测到有@Inject修饰的类时,就会从MainComponent中去找,
并且是有MainModule的@Provides修饰的方法提供的,而DaggerMainComponent则是我们创建完MainComponent后build项目后系统为我们创建的。

最后build运行一下项目:
在这里插入图片描述
上上面的图并没有创建bean对象,但是Logcat却打印出来,说明系统确实创建了对象,并且注入到了MainActivity中。

4.最后附上主要注解的作用

注解作用
@Module可以当做一个工厂
@Provides提供者,该注解通常会返回一个实例
@Component表示该接口是一个容器并且与MainModule关联
@Injectinject(MainActivity activity),注入实例

以上是最基础的Dagger2的用法,Dagger2多用于MVP框架中已达成P层和V层的解耦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值