Dagger2

Dagger2主要分为三个模块
  • 依赖提供方Module,负责提供依赖中所需要的对象,在实际的编码中类似于工厂类.
  • 依赖需求方实例,它声明依赖对象,它在实际编码中对应业务类.例如Activity,如果你在Activity中需要某个对象,那么只需要声明即可,下面会说到如何声明.
  • 依赖注入组件Component,负责将对象注入到依赖需求方,它在实际的编码中其实是一个接口,编译时Dagger2会自动为它生成一个实现类.
Dagger2的主要工作流程分为以下几步
  • 1 将依赖需求方实例传入Component实现类.
  • 2 Component根据依赖需求方实例中依赖声明,来确定该实例所需要的依赖对象.
  • 3 确定依赖对象后,Component会在与自己关联的Module方寻找有没有提供该依赖对象实例的方法,如果有就将该实例设置给依赖需求方实例对象.
使用Dagger2
  • 添加依赖
    在项目下的build.gradle文件中添加apt插件:
buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        //添加apt插件
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

...

在app目录的build.gradle文件中添加:

//应用apt插件
apply plugin: 'com.neenbedankt.android-apt'

...

dependencies {
    ...
    //引入dagger2
    compile 'com.google.dagger:dagger:2.4'
    apt 'com.google.dagger:dagger-compiler:2.4'
    //java注解
    provided 'org.glassfish:javax.annotation:10.0-b28'
}
  • 书写实体类
  • 书写module类
  • 书写com接口
  • 实际使用,inject

你可能感兴趣的:(Dagger2)