眼下Dagger有两个版本号,一个是square的Dagger1.x,另外一个是由google主导与squre联合开发的Dagger2。

本文介绍一下在Eclipse中搭建Dagger和Dagger2使用环境。样例採用的均为Dagger和Dagger2官方提供的 “咖啡”案例(Dagger1.x的案例位置在example/simple目录下。Dagger2的案例位置在example/simple目录下)。

Dagger1.X:

1. 首先下载Dagger1.x的相关内容。

jar文件能够从http://square.github.io/dagger/上下载,下载时请注意,dagger.jar和dagger-compilejar这两个文件都须要下载,两个jar文件当前的最新版本都为1.2.2。

Dagger的完整源码和官方example从https://github.com/square/dagger上下载。

2. 还须要额外下载两个jar文件:javawriter-2.2.1.jar和javax.inject-1.jar。

3. 在Eclipse中新建Java项目。在src目录下新建coffee包,并将官方案例(example/simple)中的全部.java源文件拷贝到coffee包下。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

4. 新建libs目录。将4个jar文件拷贝到libs中并build path。

5. 接下来要改动该Java项目的Java compiler。详细方式是:

i.右键单击Java项目。在弹出菜单中选择最以下的properties项

ii.选择Java Complier。确定一下Java使用的是1.6或以上版本号

iii.展开Java Complier,选择Annotation Processing,将右側顶部的三个选择框均选中。即Enable projectspecific settings、Enable annotation processing和Enable processing ineditor

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

iv.展开Annotation Processing,选择里面的Factory Path

v. 点击右側的Add JARs…button,将项目的libs目录下的4个jar包都加入进来。

注意,第一个org.eclipse.jst.ws.annotations.core是Eclipse已经加入上的。我们须要做的是加入额外的4个jar文件进来。

通过以上5步,Java Complier设置完成。

6. 右键执行CoffeeApp.java就可以。

执行成功后,在控制台上输出例如以下内容:

Dagger 2

1. 首先下载Dagger2的相关内容。jar文件能够从http://search.maven.org/#search|ga|1|g%3A%22com.google.dagger%22上下载。下载时请注意这里除了要下载dagger.jar和dagger-compile.jar这两个文件之外。还须要下载 dagger-producers.jar。前两个jar文件可供下载的最新版本都为2.0.1。而       
dagger-producers 可供下载的最新版本为2.0-beta。

Dagger2的完整源码和官方example从https://github.com/google/dagger下载。

2. 还须要额外下载两个jar文件:javax.inject-1.jar和guava-18.0.jar。特别须要注意的是guava的版本,与dagger 2.01配合使用的guava版本一定要选择18.0。

3. 在Eclipse中新建Java项目。

在src目录下新建coffee包,并将官方案例(example/simple)中的全部.java源文件拷贝到coffee包下。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

此时Eclipse会有build错误信息弹出。直接点击确定就可以。错误的产生这是由于还没有设置Java Complier的缘故。等设置完成后就一切正常了。

4. 新建libs目录,将5个jar文件拷贝到libs中并build path。

注意,假设你是开发anroid的代码,android SDK中不包括javax.annotation相关内容,dagger2在自己主动生成注解相关类的时候,会使用到里面的一些类。因此开发安卓程序时。你须要额外的再导入一个javax.annotation.jar文件(下载地址是:http://www.java2s.com/Code/Jar/j/Downloadjavaxannotationjar.htm)

5. 接下来要改动该Java项目的Java compiler。详细方式是:

i.右键单击Java项目。在弹出菜单中选择最以下的properties项

ii. 选择Java Complier,确定一下Java使用的是1.6或以上版本号

iii.展开Java Complier。选择Annotation Processing,将右側顶部的三个选择框均选中。即Enable project specific settings、Enable annotationprocessing和Enable processing in editor

iv.展开Annotation Processing,选择里面的Factory Path

v.点击右側的Add JARs…button,将项目的libs目录下的5个jar包都加入进来。

注意,第一个org.eclipse.jst.ws.annotations.core是Eclipse已经加入上的,我们须要做的是加入额外的5个jar文件进来。

通过以上5步。Java Complier设置完成。

6. 右键执行CoffeeApp.java就可以。执行成功后。在控制台上输出例如以下内容:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

至此,在Eclipse中Dagger1.x和Dagger2的环境搭建工作完成。接下来就能够參考官方的案例和说明进行代码的学习了。至于选择Dagger1.x还是Dagger2是一个见仁见智的问题,两者有比較多相似的地方。但也有所不同。首先Dagger2在性能上有所提升,其次在正确类型注入的描写叙述上採用了些许不同的方式。Dagger2相对简略一些,并且Dagger2对Dagger1.x的一些改进,使得Dagger2在安卓开发中能更方便的被使用。整体上。不管是Dagger2和Dagger1.x功能都非常强大,可是为了获得惬意的注入效果,注入前的描写叙述都比較麻烦。所以。在安卓开发中。假设不过想通过注解的方式获得视图对象、事件监听器,省略诸如findViewById以及setOnClickListener这些模板式代码的书写。应该选用更有针对性的框架,比如ButterKnife(ButterKnife的使用能够參考一下这篇文章:http://stormzhang.com/openandroid/android/2014/01/12/android-butterknife/)、xUtils的ViewUtils(xUtils的使用能够參考官方文档中的演示样例https://github.com/wyouflf/xUtils)等。

在Eclipse中搭建Dagger和Dagger2使用环境的更多相关文章

  1. 久违的问候-----eclipse中搭建maven项目2016年

    好久没有写过博客了,可是一直向别人推荐自己的博客,深感惭愧!今天再次在寒冷之夜继续code,config,write. 接下来,我们就来谈下eclipse中搭建maven web工程的步骤!虽然就是一 ...

  2. 我们的相识,总是那么巧。-------eclipse中搭建maven项目

    一.我们就来谈下eclipse中搭建maven web工程的步骤!虽然就是一个简单的例子,但是过程是很艰辛的. 首先我们看一下eclipse的封面,下面就是刚打开的华丽封面哦 其次我安装了eclips ...

  3. 在Eclipse中搭建C/C++环境

    在Eclipse中搭建C/C++环境 本文地址:http://blog.csdn.net/you_and_me12/article/details/7389934 习惯了使用eclipse编程后,现在 ...

  4. [转]在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

  5. OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境

    上篇文章介绍了如何在Eclipse中搭建Felix的运行环境,我们需要將Bundle发布到Felix框架的bundle目录下,Felix框架启动时才会自动加载这些Bundle,否则需要在Felix框架 ...

  6. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  7. 在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

  8. 在Eclipse中搭建Android开发环境

    忙活了两天多的时间,终于在Eclipse中成功搭建了Android开发环境,着实不易啊!! 原本我用的编译器是MyEclipse的,但是从网上找不到如何在MyEclipse中搭建环境,于是乎就换了Ec ...

  9. 如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)

    实现要求: 在Eclipse中搭建MyBatis基本开发环境. 实现步骤: 1.使用Eclipse创建Maven项目.File >> New >> Maven Project ...

随机推荐

  1. Android开发之BUG专讲:入门篇(一)

    前言: 本文作者:周才智 转载须注明作者与出处.违者必究. 原文地址:http://segmentfault.com/a/1190000004380690 话说诸葛亮是一个优秀的程序员,每个锦囊都是应 ...

  2. HDU3496 Watch the Movie 背包

    题目大意:给你n张电影门票,但一次只可以买m张,并且你最多可以看L分钟,接下来是n场电影,每一场电影a分钟,b价值,要求恰好看m场电影所得到的最大价值,要是看不到m场电影,输出0. 三个限制: 选电影 ...

  3. Linux - 硬件杂讲

    先死后活,先记住,再灵活运用. 拍个快照,方便系统坏了,找回. 硬件知识,cpu,内存,i/o总线,电源,机箱. 需求:公司需要做一个内容发布网站,展示公司的信息,你需要选择符合公司要求的Web服务器 ...

  4. A - Antipalindrome

    Problem description A string is a palindrome if it reads the same from the left to the right and fro ...

  5. JavaScript数组的操作

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...

  6. (转)redux

    随着 JavaScript 单页应用开发日趋复杂,越来越多的 state (状态)需要在前端进行管理. 这些 state 可能包括服务器响应.缓存数据.本地生成尚未持久化到服务器的数据,也包括 UI ...

  7. (转) 50个CSS技巧

    这里我工作中收集了10个很不错的CSS技巧,你可以用在你的项目上.它可以帮你很好地整理你的元素并让他们看起来蛮酷的.下面开始我们的内容,希望你会喜欢它.下面是我收集的CSS技巧,希望能帮助到你,感觉收 ...

  8. APP开发中,如何从UI设计上提升APP用户体验

    设计中有很多细微的东西要注意,就如UI设计中,元素的统一性,图标风格.段落的排版等等,只有能注意这些细节,你的 APP UI 才算合格. 干货君总结了17个提升用户体验的 UI 设计小技巧,也是我们日 ...

  9. VM虚拟机NAT模式主机与虚拟机ping不通解决方案

    VM虚拟机与真机通信三种模式, 桥接模式,NAT 模式 ,HOST-ONLY 模式. NAT模式 使用虚拟机的一个虚拟网卡做NAT网关,在nat网关上配dhcp ,或者直接用静态地址.就相当于形成了一 ...

  10. MySQL 5.6 Reference Manual-14.1 Introduction to InnoDB

    14.1 Introduction to InnoDB 14.1.1 InnoDB as the Default MySQL Storage Engine 14.1.2 Checking InnoDB ...