Dagger2:编译时注入框架,不需要使用反射

dagger2_google

Dagger是一个完全静态、编译时依赖注入(DI)框架,支持Java与Android平台,旨在解决那些基于反射的解决方案中令人困扰的开发和性能问题。Dagger 2对早期版本(由Square开发)进行了修改,目前由Google维护。

功能特性

Dagger2提供以下功能:

  • 单例及作用域内绑定(scoped binding)
  • 可重用作用域
  • 可重用引用
  • 延迟注入(lazy injection)
  • Provider注入
  • 限定符(qualifier)
  • Optional绑定
  • 绑定实例
  • 编译时(compile-time)校验
  • 编译时代码生成

下载安装

首先,将dagger-2.x.jar加入应用的运行时。要启用代码生成并为graph生成实现代码,还需要在编译时引入dagger-compiler-2.x.jar

Maven

在Maven项目的pom.xml中,加入daggerdagger-compiler构建,dagger-compiler的依赖可设为optionalprovided

如果使用beta版的dagger-producers扩展(提供graph并行执行),可以在Maven配置中添加:

Java Gradle

Android Gradle

如果使用的Android gradle插件版本低于2.2,可参见https://bitbucket.org/hvisser/android-apt

如果使用Android Databinding library,可能需要增加javac打印的错误个数。Dagger打印错误信息时,编译绑定(binding compilation)会停止,有时候会打印超过100个错误,这是javac的默认设置。

如果不使用maven、gradle、ivy或其他接受Maven风格配置的系统,可以从Maven Central Repository下载。

快速上手

详细的上手指南及示例请参见用户指南

  • 示例项目:coffee
  • 演示内容:
    • 声明依赖
    • 满足依赖条件
    • 构建Graph
    • 绑定graph
    • 单例及作用域内绑定(scoped binding)
    • 可重用作用域
    • 可重用引用
    • 延迟注入(lazy injection)
    • Provider注入
    • 限定符(qualifier)
    • Optional绑定
    • 绑定实例
    • 编译时(compile-time)校验
    • 编译时代码生成

开发资源

使用许可

Dagger遵循Apache 2.0开源协议发布。

官方网站:http://google.github.io/dagger/
开源地址:https://github.com/google/dagger

打赏支持我整理更多优质资源,谢谢!

打赏编辑

打赏支持我整理更多优质资源,谢谢!

任选一种支付方式

1 收藏

资源整理者简介:唐尤华

唐尤华:我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。 个人主页 · 贡献了108个资源 · 18 ·    


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer