最近追了一次最新的技术,那就是Dagger2,关于Dagger2的介绍当然首当其冲的就是官方文档了,由于英文能力有限,阅读起来话费了不少功夫,得到的实质性的帮助也不多,推荐简书大神牛小伟的博客以及知乎的一个专栏,对Dagger2的解释十分到位。
下面就谈谈我在使用Dagger2中遇到的一些问题吧!
1.刚开始我对Dagger2的理解不清楚,只知道他是用来减少实例化对象的框架
2.在使用的过程中完全是依样画葫芦,没有自己的理解。造成了很多语法上的编译错误,根本不能编译通过。
- 2.1 Component中inject()方法没有对象参数,这是个大问题,会造成在@inject注解的类无法找到依赖这个对象的实例,就是说他会产生被依赖类的实例对象,但找不到使用这个实例对象的对象。也就是说在Component的inject()方法中加入依赖这个对象的参数
- 2.2对@inject注解理解不是很深刻
总结一下,初步使用的Dagger2流程介绍:
通过Module(主要应用一些无法在修改第三方库的类中)或在类的构造函数上添加@Inject注解(注意构造方法有参数的话,参数类也需要有实例化对象的途径)提供实例化对象的途径,再而通过Component桥来连接Provider以及Custumers(Component桥需要提供@provider以及上面提到的2.1中),最后通过@Inject提示需要依赖注入的类。