本文原创,转载请注明出处:http://blog.youkuaiyun.com/zjbpku
[Duplicated] link to Dagger on Android - Dagger2详解
关于Dagger,在之前的博文(Android 依赖注入:Dagger 实例讲解(Demo下载))中已有介绍, 本文说的Dagger 2主要是由Google技术
人员参与开发的,当然包括Square的各位及其他一些Contributors在内的大牛也贡献了不少。该项目大概是从去年11月份开始启动的,到目前该项
目还在继续进行,Snapshot version也是刚刚发布不久,从Github提供的内容看,不久会是Pre Release Version,然后才是Release Version,由于
现在还是预览版,还不稳定,请谨慎使用,到Pre Release时才会相对比较稳定,可以使用来进行项目开发。本人关注这个项目依旧,就提前通过一
个Demo来简单介绍一下Dagger 2.
Dagger 2是Dagger 1.x的增强版,在Dagger 1.x中,@Inject和@Provides annotation 构成了对象的图谱(graph),依靠之间的依赖
关系而链接在一起。通过定义好的图谱集(ObjectGraph)可以方便的调用代码。而在Dagger 2中,这种关系被带有无参方法的接口代替,
这种方法返回的类型就是所需类型。这种接口的实现是通过@Component 注解且传入modules参数来定义的。如:
@Component(
// dependencies = ApplicationComponent.class,
modules = ActivityModule.class
)
public interface ActivityComponent {
MainActivity injectActivity(MainActivity activity);
ToastHelper getToastHelper();
}