【五】注入框架RoboGuice使用:(Your First POJO Injection)

转载 2015年11月20日 15:01:54

上一篇我们简单的介绍了一下RoboGuice的使用( 【四】注入框架RoboGuice使用:(Your First System Service Injection)),今天我们来看下普通Java对象的使用注解的方法:

 (一)为了在Activity中普通Java对象使用注解,必须实现以下两个步骤:

        ①:创建继承RoboActivity的Activity

        ②:使用 @Inject来进行注解POJO(普通java对象)

     在前面我们介绍了View控件,资源文件(Resources),系统服务(System Service)等Android平台特有的注解方法,RoboGuice同时也支持注解 Plain Old Java Objects(普通Java对象)。但是Roboguice只会默认去调用该对象的无参数的构造方法,所以我们需要注解的类必须有该无参构造方法。

       看下面的这个例子:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. class MyActivity extends RoboActivity {  
  2.     @Inject Foo foo; // this will basically call new Foo();  
  3. }  
       该注解会通过无参数构造函数进行默认创建该实例。


(二)使用带有参数构造函数注解

     如果有的情况下我们不想使用默认的构造函数,而是使用一个特定带有参数的构造函数,你有下面两种选择:

       ①:你可以对POJO(普通java对象)的构造函数进行注解

       ②:你可以创建一个provider和一个binding来进行实现

      第二种的方法我会写一篇专门的文章进行介绍,到时候各位童鞋可以去看下。今天我们先关注第一个方法。

现在我们假设Foo类有一个Bar实例作为参数的构造函数,然后对Foo的该有参数的构造函数使用@Inject进行注解,那么此时RoboGuice会使用该带有参数的构造函数进行实例化。下面看下实现:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. class Foo {  
  2.     Bar bar;  
  3.   
  4.     @Inject  
  5.     public Foo(Bar bar) {  
  6.         this.bar = bar;  
  7.     }  
  8. }  
    那么现在这里的RoboGuice会怎么样去获取Bar的实例呢?这个和其他注解器的规则一样,还是会去使用Bar的默认构造函数,除非Bar的带参数的构造函数也同样使用的@Inject注解。


(三)使用变量字段注解

   上面我们已经通过默认构造函数或者使用@Inject注解的带参数构造函数来进行获取了Foo实例。然而我们还可以使用这两种方法结合着来初始化变量。那就是使用Field injection.

    前面几篇文章中我们已经对View空间,资源文件(Resources)的注解方法,现在我们可以在Foo类中添加属性字段的注解来实现.

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. class Foo {  
  2.     @Inject Bar bar;  
  3.   
  4.     // Roboguice doesn't need a constructor, but you might...  
  5. }  
   上面的代码,当RoboGuice进行创建Foo实例的时候,它会首先创建Bar的实例并且直接注解到以bar命名的字段中。该和上面的构造函数注入的例子等同。这种方法我们的代码会更加简洁,易读但是普通的其他Java对象如果没有使用Roboguice,那么我们会难以使用Foo对象。

    如果你使用Field或者Constructor,你可以浏览下面的网站来查看注解的详情信息:

    http://code.google.com/p/google-guice/wiki/Injections

【十一】注入框架RoboGuice使用:(Your First Injection into a Custom View class)

上一篇我们简单的介绍了一下RoboGuice的使用(【十】注入框架RoboGuice使用:(Your First Testcase)),今天我们来看下自定义View的注入(Custom View)。...

【十】注入框架RoboGuice使用:(Your First Testcase)

上一篇我们简单的介绍了一下RoboGuice的使用(【九】注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)),...

【七】注入框架RoboGuice使用:(Your First Custom Binding)

上一篇我们简单的介绍了一下RoboGuice的使用(【六】注入框架RoboGuice使用:(Singletons And ContextSingletons)),今天我们来看下自定义绑定(bind...

【十三】注入框架RoboGuice使用:(Logging via Ln)

上一篇我们简单的介绍了一下RoboGuice的使用(【十二】注入框架RoboGuice使用:(Your First Injected ContentProvider)),今天我们来看下Log日志使...

【六】注入框架RoboGuice使用:(Singletons And ContextSingletons)

上一篇我们简单的介绍了一下RoboGuice的使用(【五】注入框架RoboGuice使用:(Your First POJO Injection)),今天我们来看下单例以及上下文单例(ContextSi...

Android开发使用RoboGuice3.0框架进行注入

githuab地址: https://github.com/roboguice/roboguice/wiki/InstallationGradle https://github.com/googl...

【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之第三方框架集成RoboGuice(十三)

(一).前言:           前面我们已经对于AndroidAnnotations框架的线程处理做了讲解,今天我们开始具体学习一下第三方框架集成。 (二).RoboGuice集成 2.1.简介说...

Roboguice框架使用实例

  • 2016年11月01日 08:56
  • 3.04MB
  • 下载

Android中的DI(依赖注入)框架--RoboGuice

RoboGuice是应用于Android开发中的DI(依赖注入)框架,基于 Google 自己的Guice库.如果你曾接触过Spring框架(Java开发中三大框架之一,现在甚至比J2EE都流行)或G...

注入框架RoboGuice

Reference: https://github.com/roboguice/roboguice/wiki 最经接触到一些java的注入知识,找了下相关资料github上有个RoboGuice的库...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【五】注入框架RoboGuice使用:(Your First POJO Injection)
举报原因:
原因补充:

(最多只允许输入30个字)