您的位置:首页 > 其它

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)框架,中文叫依赖注入。

简介

@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