Dagger2框架入门使用
来源:互联网 发布:韩国历史教科书知乎 编辑:程序博客网 时间:2024/05/16 15:49
- 前戏
- 没有使用Dagger框架的例子:
要做的事情:点击MainActivity上的一个按钮,获取UserBean中的getName方法返回的值,然后使用Toast显示出来。
1、UserBean.java
2、MainActivity.java
3、activity_main.xml
以上代码很简单,就是在MainActivity中调用UserBean的getName方法,并且使用Toast将其显示出来。
接下来,我们开始使用dagger来修改上面的代码。就上面的例子而言,dagger能做什么呢?----答案就是dagger可以将new UserBean()这句话省略掉。
- Dagger的使用
1、配置,导入dagger需要的jar包和插件。
2、开始使用
- 配置
如上,写有“此处添加”的语句,标识是要添加到你自己项目中的,其他的配置默认为你自己项目的配置即可。
- 开始使用
可以看到,添加了一个无参构造器,并且在构造器上面写了一个@Inject注解。至于@Inject注解的含义,表示通过此构造器创建UserBean对象。
2、新增UserComponent.java接口
注意此接口使用@Component注解,在下面我们会详细介绍@Component的作用。
3、修改MainActivity.java类
注意上面的userBean对象上加了一个@Inject注解。表示此对象需要dagger帮忙创建,即使用dagger创建好了之后,自动给其赋值(注入)。
然后多了一句DaggerUserComponent.create().inject(this);,DaggerUserComponent是自动生成的(通过前面的配置项自动生成)。create()方法就是创建了一个UserComponent对象。
至此,一个使用dagger的简单项目就可以运行起来了。大家可以对比没有使用dagger和使用dagger的区别在哪里(这个很容易发现)。
接下来,我们看看其中使用的@Inject、@Component的含义是什么。
- 说明
在MainActivity中直接创建UserBean的对象,相对于自由恋爱,女朋友需要你自己去找。
但是因为各种原因,比如生活圈子窄、比如公司女生少,僧多粥少等原因,自己找起来可能比较费劲。这个时候就可以去相亲,相亲的话需要有一个媒婆牵线搭桥,如下面这张形象的图:
在这个图中男方找对象,对象就是女方,2人本不相识,通过中介媒婆牵线相亲,最后在一起。但是有一个问题,媒婆怎么知道男方需要找媳妇呢?又是怎么知道女方需要嫁人呢?他们2人肯定要把需求都告诉媒婆。
在这个例子中,女方相当于userBean.java,男方相当于MainActivity.java,媒婆相当于UserComponent.java。然后MainActivity通过@Inject注解将自己想找一个什么样的对象暴露出来,UserBean通过@Inject表示要创建我(我==UserBean),需要通过我(我==UserBean)指定的构造器创建。此时,媒婆UserComponent登场,将2者的意向通过DaggerUserComponent.create().inject()关联起来;之后,郎有情、妾有意,顺理成章MainActivity成功找到一个UserBean对象。
- 总结
在构造器上使用Inject注解,表示使用此构造器创建对象。
在变量上使用Inject注解,表示此变量需要dagger来给它创建一个对象。
2、Component:
Component注解就是使用Inject标注的构造器创建一个对象,将创建好的对象赋值给Inject注解的变量中。
3、此片文章重点在于理解Dagger的作用和基本用法。关于Dagger的详细使用方式将在之后的文章中详细介绍,或者可以浏览官网:http://google.github.io/dagger/。
Dagger的官方下载地址:https://github.com/google/dagger
4、dagger是square公司的一个开源框架,后来google对其进行了修改以至于能更好的在android上使用。所以在Github上,有2个dagger,一个是square公司维护的,一个是google自己维护的。我们这个例子中使用的是google维护的dagger,习惯上称之为dagger2。
源码在Github上,地址为:https://github.com/yangjingwen2/androiddaggerdemo。
0 0
- Dagger2框架入门使用
- Dagger2简单入门使用
- Dagger2入门-基本使用(上)
- Dagger2入门-基本使用(下)
- Android 依赖注入框架 Dagger2使用
- Dagger2入门
- dagger2入门
- Dagger2入门
- Dagger2入门
- Dagger2入门
- Dagger2 入门
- Dagger2入门
- dagger2使用入门详解(一)
- Android-框架-Dagger2-Dagger2从入门到放弃再到恍然大悟
- 依赖注入框架Dagger2从入门到放弃
- Dagger2使用
- Dagger2使用
- Dagger2使用
- laravel字段自增/自减
- 背包问题(转载并且加上了自己的一些思路)
- 关于dialogbox
- mysql语句及其分类(DQL)
- SideBar+ListView
- Dagger2框架入门使用
- 正确的使用eval()
- pads规则(对某一个元件单独设计规则)
- Web API接口设计经验总结
- APM 被监控应用的方法拦截
- RegSetValueEx出错的问题
- 吐槽前端组件化的踩坑之路
- 高效阅读一本书的四个层次
- 抢答器