眼下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. 齐头并进完成任务——Java多线程(一)

    多线程(Multithread)指的是在单个进程中同时运行多个不同的线程,执行不同的任务.多线程意味着一个程序的多行语句块并发执行. 一.实现多线程 1.通过继承Thread类实现多线程. Threa ...

  2. 使用Lucene对预处理后的文档进行创建索引(可执行)

    时间: 2015/3/18 杨鑫newlife 对于文档的预处理后.就要開始使用Lucene来处理相关的内容了. 这里使用的Lucene的过程例如以下: 首先要为处理对象机那里索引 二是构建查询对象 ...

  3. bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)

    1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...

  4. CodeForces 486B

    Let's define logical OR as an operation on two logical values (i. e. values that belong to the set { ...

  5. php Aes 128位算法

    <?php class Mcrypt { private static $key = "fsdjfojojodjiovjojgfosdjfiojio"; private st ...

  6. [转载]Windows&nbsp;Server&nbsp;2008&nbsp;R2&nbsp;之二十五AD&nbsp;RMS信任策略

    原文地址:Windows Server 2008 R2 之二十五AD RMS信任策略作者:从心开始 可以通过添加信任策略,让 AD RMS 可以处理由不同的 AD RMS 群集进行权限保护的内容的授权 ...

  7. jquery 获取及设置input各种类型的值

    获取选中的值 获取一组radio被选中项的值 var item = $(“input[@name=items]:checked”).val(); 获取select被选中项的文本 var item = ...

  8. Hibernate框架学习(十)——查询优化

    一.类级别查询 1.get方法:没有任何策略,调用即立即查询数据库加载数据. 2.load方法:是在执行时不发送任何SQL语句,返回一个对象,使用该对象时才执行查询:应用类级别的加载策略. 1> ...

  9. spring中quatz的多定时任务配置图文详解

    近来公司让用quatz框架做定时功能,而且还是执行多定时任务,真是苦恼. 虽然从网上搜了很多资料,但是写法上不太尽如人意,最后还是请教了螃蟹大神,给的配置建议就是简单啊,现在拿来分享下: 这里我们需要 ...

  10. 6 Python+Selenium的元素定位方法(CSS)

    [环境] python3.6+selenium3.0.2+Firefox50.0+win7 [定位方法] 1.方法:find_element_by_css_selector('xx') CSS的语法比 ...