Dagger2 基于android的Spring
前几天刚好项目不忙, 去看看Dagger2的学习资料,为什么到现在才看它呢?
也许是它不容易上手一个原因吧, 但更多的是我个人的执念,我就觉得基于注解和反射的东西都不是什么好东西?
呵呵 , 但最近看到它是越来越多的被集成于的项目中去,并且经常和rxjava绑在一起使用,感觉也是非常的牛逼。大家都说好,那我也虚心学习下咯。断断续续学了几天,总结一下。
Dagger2的定义:使用DI来实现IOC的容器。
本节内容:
- @Inject
- @Component
@Module
@Inject是如何寻找对象的?
用过Butterknife的人都知道 ,使用@Bind(R.id.name) 这样的注解可以让框架自动的从本页面寻找id对应的View. 在这里,使用@Inject来寻找该类对应的实例.这里有一个疑问,在传统的编程当中,对应一个是有new作为关键字来创建的,或通过其他克隆、反射、字节码注册等等方式来创建。那dagger2是如何去寻找对象实例的呢?
有两种方式,一种是通过@Inject-@Inject方式,连接类的构造函数和被依赖对象实例的对接。另外一种,就是通过其他注解进行绑定和容器注册提供对象。同时还可以指定改类为单例。后面再讲给大家。
先了解一下通过@inject绑定构造函数方式: