Dagger2

Dagger2是什么?
Dagger2是Dagger的升级版,是一个依赖注入框架,第一代由大名鼎鼎的Square公司共享出来,第二代则是由谷歌接手后推出的,现在由Google接手维护.

    依赖
    依赖是指某个模块A要实现某个功能需要其他模块B。
    最原始也最简单的的方式是在模块内new一个B的对象出来,这样会造成B的构造函数修改,需要修改A中的代码,两者耦合度非常高。

    依赖注入
    依赖注入是不在A中去创建 B的实例,而是让上层调用者注入一个B的对象,这样可以让模块A不再因为B的构造方法的修改而改变
    dagger2导包
    implementation 'com.google.dagger:dagger:2.23.2'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.23.2'

dagger2基本使用
创建注入提供者类
提供者创建构造方法
给构造方法添加@Inject注解,表明对外提供依赖,并写个方法
public class Utils1 {
@Inject
//提供给其他类使用
public Utils1(){
}
public void show(){
Log.e("########",“utils1—show”);
}
}
在接收注解方创建提供注解类的对象并添加@Inject注解,表明这个对象需要注入
@Inject
//使用其他类
Utils1 utils1;
创建注解的桥梁,或者叫注入者。注入者是一个接口,需要用@Component注解,并且提供一个方法用来表示向谁注入。
@Component
//提供桥梁
public interface Utils1Compont {

void inject(Main2Activity main2Activity);

}

注意到这里可以锤了
在调用类中加载Dagger,然后就可以调用了
DaggerUtils1Compont.builder().build().inject(this);

dagger2基本使用2-仓库
创建连接仓库类,仓库类需要@Module来注解表示这是仓库
带仓库的dagger也需要一个接口桥梁,这个桥梁注解需要参@Component(modules={UserModule.class})
可以锤了
在调用类中加载Dagger,然后就可以调用了,加载Dagger时需要将仓库带入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值