Dagger2(01入门篇)

吐槽一会

很早以前就在看dagger2,百度来的东西,基本上都是各种复制粘贴,不接地气。看的晕晕乎乎的,但是android面试,基本也就是mvp+rxjava+retrofit2+dagger2,大家在用,自己不会多尴尬。最近终于掏出来时间好好研究了下,不求解答原理,会用就行,原理之类的等段位爬上大师再说吧。毕竟作为低阶码字猴的最低需求是先会用,出去面试也好说我熟练使用这个框架(写过dmeo...)

大哥2的基友网地址

https://github.com/google/dagger

最简单版本

我们先写一个对象,在构造函数上写上符号@inject,表示老夫要把这个对象用这个构造函数提供出去


Dagger2(01入门篇)_第1张图片
image.png

这个@Component 是干啥的呢?说白了,你可以理解为我要把东西注入到哪个页面里面,你可能会说这也没显示出来把那个对象塞进哪个页面啊?不要着急,这是初级版本,慢慢来。


Dagger2(01入门篇)_第2张图片
image.png

上面两步写完了,请打开你的android 死丢丢,按照如图所示,点击一下


Dagger2(01入门篇)_第3张图片
image.png

Rebuild 结束,去我们刚写的注入的那个页面,开头写Dagger,神奇事情发生了,出现了一个以Dagger
开头的CarComponent类,直接点create(),然后注入当前页面。
看上面我用Inject注入了一个Car对象,在log里面输出了一下toString方法


Dagger2(01入门篇)_第4张图片
image.png

测试结果出来,成功打印出了car{},这说明什么,证明这个car对象注入进来了,而且初始化成功了。
image.png

是不是略微有点成就感了,学东西最怕的不是时间长而是不见效果,先来点甜头。
现在是不是觉得也很麻烦为了一个对象,捣鼓这么久,还不如直接new一个?等我下次更新告诉你为啥这么做,还有多个构造函数的该怎么办?

你可能感兴趣的:(Dagger2(01入门篇))