Dagger2原理

Dagger2主要是利用编译阶段利用apt Java注解自动生成代码

Dagger2代码设置好后 第一步就是进行编译!!!

在build->generated->ap-generated-sources文件夹下有对应生成的java文件,

这里我用Dagger2基本使用中的demo为例.


这里的DaggerMyCompent 会implements 我们自己写的MyCompent 组件

这里通过构建器 来构建对象

private DaggerMyCompent(Builder builder) {

assert builder !=null;

  initialize(builder);

}


在Builder.build()中 如果我们没有自己设置 对应的module,生成的代码会自动帮我们创建



initialize()方法

provider会通过factory创建出来 同时将builder中的moudle传入factory中




下面将对相应的provider加入到MainActivity_MembersInjector中

当注入调用的时候



对应的实现类MainActivity_MembersInjector


调用对应的get方法


module.providerHttpObject(),即为我们自己写的代码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容