文档章节

Google Guice范例解说之使用入门

紫地瓜
 紫地瓜
发布于 2012/12/14 15:25
字数 517
阅读 179
收藏 3

本文通过范例简单地介绍Google Guice的使用,通过下面的范例我们可以知道,Google Guice的使用非常简单。

  Google Guice需要使用JDK1.5以上Java环境。

  下载Google Guice之后,

  有以下几个文件:

  aopalliance.jar

  guice-1.0.jar

  guice-Servlet-1.0.jar

  guice-spring-1.0.jar

  guice-Struts2-plugin-1.0.jar

  本例只使用到guice-1.0.jar文件,将其加入到class path中。

  下面简单地介绍范例:

  范例1:使用com.google.inject.Module接口实现类

文件名 说明
HelloGuice.java 业务逻辑接口定义文件
HelloGuiceImpl.java 业务逻辑接口实现文件
HelloGuiceModule.java 该文件必须实现com.google.inject.Module接口
TestGuice.java 测试文件

HelloGuice.java
  
view plaincopy to cliPBoardprint?
package com.test.guice; 
 
public interface HelloGuice { 
  public void sayHello(); 
} 
  
package com.test.guice;
  
public interface HelloGuice {
  public void sayHello();
}
  
HelloGuiceImpl.java
  
view plaincopy to clipboardprint?
package com.test.guice; 
 
public class HelloGuiceImpl implements HelloGuice { 
 
  public void sayHello() { 
    System.out.println("Hello Guice!"); 
  } 
} 
  
package com.test.guice;
  
public class HelloGuiceImpl implements HelloGuice {
  
  public void sayHello() {
    System.out.println("Hello Guice!");
  }
}
  
HelloGuiceModule.java
  
view plaincopy to clipboardprint?
package com.test.guice; 
 
import com.google.inject.Binder; 
import com.google.inject.Module; 
 
public class HelloGuiceModule implements Module { 
 
  public void configure(Binder binder) { 
    binder.bind(HelloGuice.class).to(HelloGuiceImpl.class); 
  } 
 
} 
  
package com.test.guice;
  
import com.google.inject.Binder;
import com.google.inject.Module;
  
public class HelloGuiceModule implements Module {
  
  public void configure(Binder binder) {
    binder.bind(HelloGuice.class).to(HelloGuiceImpl.class);
  }
  
}
  
TestGuice.java
  
view plaincopy to clipboardprint?
package com.test.guice; 
 
import junit.Framework.TestCase; 
 
import com.google.inject.Guice; 
import com.google.inject.Injector; 
 
public class TestGuice extends TestCase { 
  public void testHelloGuice() { 
    Injector injector = Guice.createInjector(new HelloGuiceModule()); 
     
    HelloGuice helloGuice = injector.getInstance(HelloGuice.class); 
    helloGuice.sayHello(); 
  } 
} 
  
package com.test.guice;
  
import junit.framework.TestCase;
  
import com.google.inject.Guice;
import com.google.inject.Injector;
  
public class TestGuice extends TestCase {
  public void testHelloGuice() {
    Injector injector = Guice.createInjector(new HelloGuiceModule());
    
    HelloGuice helloGuice = injector.getInstance(HelloGuice.class);
    helloGuice.sayHello();
  }
}

  运行TestGuice,打印出:

  Hello Guice!

  范例2:使用Java Annotation

  我们也可以直接为HelloGuice加上@ImplementedBy注释,而省略掉对com.google.inject.Module的实现。

HelloGuice.java
  
view plaincopy to clipboardprint?
package com.test.guice; 
 
import com.google.inject.ImplementedBy; 
 
@ImplementedBy(HelloGuiceImpl.class) 
public interface HelloGuice { 
  public void sayHello(); 
} 
  
package com.test.guice;
  
import com.google.inject.ImplementedBy;
  
@ImplementedBy(HelloGuiceImpl.class)
public interface HelloGuice {
  public void sayHello();
}
  
TestGuice.java
  
view plaincopy to clipboardprint?
package com.test.guice; 
 
import junit.framework.TestCase; 
 
import com.google.inject.Guice; 
import com.google.inject.Injector; 
 
public class TestGuice extends TestCase { 
  public void testHelloGuice() { 
    //Injector injector = Guice.createInjector(new HelloGuiceModule()); 
     
    Injector injector = Guice.createInjector(); 
    HelloGuice helloGuice = injector.getInstance(HelloGuice.class); 
    helloGuice.sayHello(); 
  } 
} 
  
package com.test.guice;
  
import junit.framework.TestCase;
  
import com.google.inject.Guice;
import com.google.inject.Injector;
  
public class TestGuice extends TestCase {
  public void testHelloGuice() {
    //Injector injector = Guice.createInjector(new HelloGuiceModule());
    
    Injector injector = Guice.createInjector();
    HelloGuice helloGuice = injector.getInstance(HelloGuice.class);
    helloGuice.sayHello();
  }
}

  HelloGuiceModule.java不再需要。其余的文件内容不变。

  运行TestGuice,打印出:

  Hello Guice!

  本文通过范例简单地介绍了Google Guice的使用。至于Google Guice与Spring,Struts等的集成,本文未加涉及,请参考其他文章。

© 著作权归作者所有

紫地瓜
粉丝 28
博文 143
码字总数 212781
作品 0
日本
产品经理
私信 提问
Google Guice范例解说之使用入门

本文通过范例简单地介绍Google Guice的使用,通过下面的范例我们可以知道,Google Guice的使用非常简单。 Google Guice需要使用JDK1.5以上java环境。 下载Google Guice之后, 有以下几个文件...

红薯
2009/03/01
3.5K
4
Google Guice使用入门

本文通过范例简单地介绍Google Guice的使用,通过下面的范例我们可以知道,Google Guice的使用非常简单。 Google Guice需要使用JDK1.5以上java环境。 下载Google Guice之后,有以下几个文件:...

引鸩怼孑
2015/09/09
122
0
《Redis in action》读书笔记

https://www.gitbook.io/book/abcfy2/redis-in-action-reading-notes 最近在学习redis,正在看这本书,以笔记的形式记录下这本书,方便以后翻阅。 这本书介绍很不错,入门很值得参考,图文并...

Feng_Yu
2014/09/27
0
0
Android上的Guice--RoboGuice

在开发应用时一个基本原则是模块化,并且近最大可能性地降低模块之间的耦合性。在Java平台上Spring Framework 以及.Net 平台 CAB ,SCSF 和Prism (WPF,Silverlight)中都有对Dependency inject...

匿名
2012/10/15
13.7K
0
Guice简明教程

Guice是Google开源的一个依赖注入类库,相比于Spring IoC来说更小更快。Elasticsearch大量使用了Guice,本文简单的介绍下Guice的基本概念和使用方式。 学习目标 概述:了解Guice是什么,有什...

l253272670
2017/01/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 常用注解说明

实体类 @Entity (实体类注解) @Table(可指定表名) @Data(可缺省get/set) @Id (指定属性主键) @GeneratedValue(指定主键生成规则)

兜兜毛毛
今天
3
0
局域网能互相ping通,ubuntu虚拟机不能上外网

【问题】 桥接模式老是无法上网,查看本机IP发现被分配了一个私网地址,猜测应该是虚拟DHCP服务器没有打开,于是查看Ubuntu的网络配置: /etc/network/interfaces 发现没有dhcp配置的信息,只...

tahiti_aa
今天
2
0
以太坊助记词PHP开发包简介

以太坊助记词PHP开发包用来为PHP以太坊应用增加助记词和层级确定密钥支持能力。下载地址:以太坊助记词php开发包 。 1、开发包概述 以太坊助记词PHP开发包主要包括以下特性: 生成符合BIP39...

汇智网教程
昨天
2
0
系统监控-分布式调用链Skywalking

1. 为什么要使用分布式调用链技术? 随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生...

秋日芒草
昨天
6
0
告诉自己的一些建议

摆脱学生心态 尽快发挥自己价值,让公司感知自己的存在,才是王道 选择比努力重要 自己附着的平台的经济体要是一个快速崛起的行业 转行趁早,年龄越大选择成本越高 趁早大量试错,学习新领域...

林怡丰
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部