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(),即为我们自己写的代码