Dagger2
2016-05-12 11:38
375 查看
google/dagger: A fast dependency injector for Android and Java.
https://github.com/google/dagger/
看了两天,10+博客吧,有点明白Dagger2了。
Dagger2 是一个DI(Dependency Injection简称DI)框架,中文叫依赖注入。
第一种:比如在Activity中,用@Inject 作为属性
第二种:在A中,用@Inject 作为构造方法
@Module:把可能有依赖注入需求的各种实例管理起来,放在一起,因为各种实例有可能也有相互依赖。
@Provides: 在modules中,@Provides用来标识,那些方法是用来提供实例的。
在@Inject的第一种作用中,是先从Module中查找有没有提供类实例的方法,若找到就用Module中的方法创建类实例,并停止查找Inject维度。否则才是从有@Inject注解的构造方法中去构造类实例。所以创建类实例级别Module维度要高于Inject维度。
@Component:将Activity和Module连接起来,让他们能互相找到彼此。
Android:dagger2让你爱不释手-基础依赖注入框架篇 - 简书
关联DEMO
“一盘沙拉”带你入门Dagger2(一)之HelloWorld - Android_Study_OK的博客 - 博客频道 - CSDN.NET
Android常用开源工具(1)-Dagger2入门 - 远古大钟 - 博客频道 - CSDN.NET
Dagger2 菜鸟入门 - 简书
其他Demo:
luxiaoming/dagger2Demo: 删减了很多东西了,主要是做教程实时修改了。欢迎 star fork
gzsll/TLint: TLint for 虎扑体育 基于Dagger2+RxJava+Retrofit开发,采用MVP模式
vincetreur/Dagger2: A Dagger 2 example with @ActivityScope and @UserScope
关于Scope:
Dagger2 Scope 注解能保证依赖在 component 生命周期内的单例性吗? - 推酷
http://www.tuicool.com/articles/mQbqayf
Dagger2使用攻略 - 唯鹿的博客 - 博客频道 - CSDN.NET
http://blog.csdn.net/qq_17766199/article/details/50606011
如果找不到@Provides方法提供对应参数的对象,自动调用带@Inject参数的构造方法生成相应对象
解锁Dagger2使用姿势(一) - 江南一点雨的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/u012702547/article/details/52200927
Android:Dagger2学习之由浅入深 - 简书
http://www.jianshu.com/p/8fd84680939c
依赖注入神器:Dagger2详解系列 | 暗影杀手(NightKiller)
https://dreamerhome.github.io/2016/07/07/dagger/
Dagger2 生成代码学习 - KingsLanding - 博客园
http://www.cnblogs.com/zhuyp1015/p/5122578.html?utm_source=tuicool&utm_medium=referral
使用:
详解Dagger2 - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0519/2892.html
依赖注入库 Dagger2 的使用方法 | Mystra
http://www.wangchenlong.org/2016/03/16/1602/use-dagger-first/
Dagger2使用 - 简书
http://www.jianshu.com/p/c2feb21064bb
Android dagger2使用 - new_abc的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/new_abc/article/details/48199409
源码:
从零开始的Android新项目4 - Dagger2篇 | markzhai’s home
http://blog.zhaiyifan.cn/2016/03/27/android-new-project-from-0-p4/?utm_source=tuicool&utm_medium=referral
[Android]使用Dagger 2依赖注入 - 自定义Scope(翻译) - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/archive/2016/01/02/5095426.html
android - 标签 - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/tag/android/
项目:
当复仇者联盟遇上Dagger2、RxJava和Retrofit的巧妙结合 - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0601/2963.html
Android 依赖注入: Dagger 2 实例讲解(一) - 【菜鸟的成长史】 - 博客频道 - CSDN.NET
http://blog.csdn.net/zjbpku/article/details/42109891
深入Dagger:JavaPoet的使用 - wcong - 博客园
http://www.cnblogs.com/wcongcode/p/6077437.html
Dagger2 使用初步 - KingsLanding - 博客园
http://www.cnblogs.com/zhuyp1015/p/5119727.html
Dagger2 生成代码学习 - KingsLanding - 博客园
http://www.cnblogs.com/zhuyp1015/p/5122578.html
详解Dagger2 - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0519/2892.html
Android dagger2使用 - new_abc的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/new_abc/article/details/48199409
Android 依赖注入: Dagger 2 实例讲解(一) - 【菜鸟的成长史】 - 博客频道 - CSDN.NET
http://blog.csdn.net/zjbpku/article/details/42109891
依赖注入库 Dagger2 的使用方法 | Mystra
http://www.wangchenlong.org/2016/03/16/1602/use-dagger-first/
Dagger2使用 - 简书
http://www.jianshu.com/p/c2feb21064bb
MVP+Dagger2+Retrofit实现更清晰的架构 - NoBlueSky的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/tiankong1206/article/details/46486401
[Android]使用Dagger 2依赖注入 - 自定义Scope(翻译) - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/archive/2016/01/02/5095426.html
android - 标签 - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/tag/android/
Dagger2工作流程分析 | 赵淑超
http://ifarseer.github.io/2016/05/09/dagger2/
vsona/orz: A Demo with Retrofit2 Okhttp3 Dagger RxJava RxAndroid ButterKnife…
https://github.com/vsona/orz
CarlLu/MVPframe: Dagger2+Rxjava+Retrofit+MVP
https://github.com/CarlLu/MVPframe
CycloneAxe/phphub-android: PHPHub for Android
https://github.com/CycloneAxe/phphub-android
https://github.com/google/dagger/
看了两天,10+博客吧,有点明白Dagger2了。
Dagger2 是一个DI(Dependency Injection简称DI)框架,中文叫依赖注入。
简介
@Inject:有两种作用第一种:比如在Activity中,用@Inject 作为属性
A a;的注解,表示在这里我对a有依赖,你需要给我注入相应的实例,以完成属性a的初始化
第二种:在A中,用@Inject 作为构造方法
public A (){}的注解,相当于做一个记号,在你需要A的实例的时候,知道到这里来,用这个构造方法构造实例。
@Module:把可能有依赖注入需求的各种实例管理起来,放在一起,因为各种实例有可能也有相互依赖。
@Provides: 在modules中,@Provides用来标识,那些方法是用来提供实例的。
在@Inject的第一种作用中,是先从Module中查找有没有提供类实例的方法,若找到就用Module中的方法创建类实例,并停止查找Inject维度。否则才是从有@Inject注解的构造方法中去构造类实例。所以创建类实例级别Module维度要高于Inject维度。
@Component:将Activity和Module连接起来,让他们能互相找到彼此。
使用
参考:Android:dagger2让你爱不释手-基础依赖注入框架篇 - 简书
关联DEMO
“一盘沙拉”带你入门Dagger2(一)之HelloWorld - Android_Study_OK的博客 - 博客频道 - CSDN.NET
Android常用开源工具(1)-Dagger2入门 - 远古大钟 - 博客频道 - CSDN.NET
Dagger2 菜鸟入门 - 简书
其他Demo:
luxiaoming/dagger2Demo: 删减了很多东西了,主要是做教程实时修改了。欢迎 star fork
gzsll/TLint: TLint for 虎扑体育 基于Dagger2+RxJava+Retrofit开发,采用MVP模式
vincetreur/Dagger2: A Dagger 2 example with @ActivityScope and @UserScope
关于Scope:
Dagger2 Scope 注解能保证依赖在 component 生命周期内的单例性吗? - 推酷
http://www.tuicool.com/articles/mQbqayf
Dagger2使用攻略 - 唯鹿的博客 - 博客频道 - CSDN.NET
http://blog.csdn.net/qq_17766199/article/details/50606011
如果找不到@Provides方法提供对应参数的对象,自动调用带@Inject参数的构造方法生成相应对象
解锁Dagger2使用姿势(一) - 江南一点雨的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/u012702547/article/details/52200927
Android:Dagger2学习之由浅入深 - 简书
http://www.jianshu.com/p/8fd84680939c
依赖注入神器:Dagger2详解系列 | 暗影杀手(NightKiller)
https://dreamerhome.github.io/2016/07/07/dagger/
Dagger2 生成代码学习 - KingsLanding - 博客园
http://www.cnblogs.com/zhuyp1015/p/5122578.html?utm_source=tuicool&utm_medium=referral
使用:
详解Dagger2 - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0519/2892.html
依赖注入库 Dagger2 的使用方法 | Mystra
http://www.wangchenlong.org/2016/03/16/1602/use-dagger-first/
Dagger2使用 - 简书
http://www.jianshu.com/p/c2feb21064bb
Android dagger2使用 - new_abc的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/new_abc/article/details/48199409
源码:
从零开始的Android新项目4 - Dagger2篇 | markzhai’s home
http://blog.zhaiyifan.cn/2016/03/27/android-new-project-from-0-p4/?utm_source=tuicool&utm_medium=referral
[Android]使用Dagger 2依赖注入 - 自定义Scope(翻译) - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/archive/2016/01/02/5095426.html
android - 标签 - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/tag/android/
项目:
当复仇者联盟遇上Dagger2、RxJava和Retrofit的巧妙结合 - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0601/2963.html
Android 依赖注入: Dagger 2 实例讲解(一) - 【菜鸟的成长史】 - 博客频道 - CSDN.NET
http://blog.csdn.net/zjbpku/article/details/42109891
深入Dagger:JavaPoet的使用 - wcong - 博客园
http://www.cnblogs.com/wcongcode/p/6077437.html
Dagger2 使用初步 - KingsLanding - 博客园
http://www.cnblogs.com/zhuyp1015/p/5119727.html
Dagger2 生成代码学习 - KingsLanding - 博客园
http://www.cnblogs.com/zhuyp1015/p/5122578.html
详解Dagger2 - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0519/2892.html
Android dagger2使用 - new_abc的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/new_abc/article/details/48199409
Android 依赖注入: Dagger 2 实例讲解(一) - 【菜鸟的成长史】 - 博客频道 - CSDN.NET
http://blog.csdn.net/zjbpku/article/details/42109891
依赖注入库 Dagger2 的使用方法 | Mystra
http://www.wangchenlong.org/2016/03/16/1602/use-dagger-first/
Dagger2使用 - 简书
http://www.jianshu.com/p/c2feb21064bb
MVP+Dagger2+Retrofit实现更清晰的架构 - NoBlueSky的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/tiankong1206/article/details/46486401
[Android]使用Dagger 2依赖注入 - 自定义Scope(翻译) - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/archive/2016/01/02/5095426.html
android - 标签 - 天天_byconan - 博客园
http://www.cnblogs.com/tiantianbyconan/tag/android/
Dagger2工作流程分析 | 赵淑超
http://ifarseer.github.io/2016/05/09/dagger2/
vsona/orz: A Demo with Retrofit2 Okhttp3 Dagger RxJava RxAndroid ButterKnife…
https://github.com/vsona/orz
CarlLu/MVPframe: Dagger2+Rxjava+Retrofit+MVP
https://github.com/CarlLu/MVPframe
CycloneAxe/phphub-android: PHPHub for Android
https://github.com/CycloneAxe/phphub-android
相关文章推荐
- Dagger2 的简单使用 (一)
- Dagger2 的简单使用 (一)
- 对Dagger2的使用
- dagger2简介,以及它与clean architecture的关系
- Dagger2学习之Hello Dagger
- Dagger2使用记录
- Dagger是什么和我们怎么通过使用它获得收获
- Dagger2使用方法
- Dagger2学习笔记(二)
- 分享一下Dagger2的使用经验
- 初次了解Dagger2
- Dagger 2 项目配置错误: error: the import javax.annotation.Generated cannot be resolved
- Dagger2
- Android中使用Dagger2
- Android Dagger2(二)源码分析-对象是如何被注入的
- Android Dagger2(一) Dagger使用详解
- 红旅动漫App
- Dagger2从0基础使用,到单例注入的正确姿势
- 依赖注入利器 - Dagger ‡
- Dagger2全面解析