`
huibin
  • 浏览: 754283 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Google Guice的使用

阅读更多

本文通过范例简单地介绍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等的集成,本文未加涉及,请参考其他文章。

 

分享到:
评论

相关推荐

    google Guice 1.0 用户指南 中文

    "google Guice 1.0 用户指南 中文" Guice 是一个超轻量级的、下一代的、为 Java 5 及后续版本设计的依赖注入容器。它可以帮助 Java 企业应用开发社区解决连接对象方面的问题,例如 Web 应用如何访问中间层服务、...

    Learning Google Guice

    描述中提到的“谷歌Guice开发英文文档”,表明这是一份英文版的学习资料,详细记载了如何使用Google Guice进行开发,而文档中的“对开发很有帮助,可当成工具书使用”强调了这份资料的实用性,可以作为开发者在开发...

    DI容器框架Google Guice与Spring框架的区别

    - **模块化**:Guice使用`Module`类来定义依赖关系,使得配置更加模块化和可扩展。 - **类型安全**:Guice在编译时进行依赖注入的验证,可以捕获错误,避免运行时异常。 3. **Spring框架简介**: - **全面的解决...

    Google Guice与MyBatis集成,并实现发送邮件轮询

    Google Guice 这个高效的与Spring类似的依赖注入框架; MyBatis配置和使用; Google Guice与MyBatis集成,支持注解事务,简单的无法想象; Mybatis与mysql集成;实现发送邮件轮询; 源码是个web项目,里面有数据库的...

    Google guice

    **Google Guice**,全称为Google Injection,是一个轻量级的依赖注入框架,它通过注解(Annotations)来实现对象的自动装配,简化了Java应用的构造和管理。Guice的核心理念是帮助开发者摆脱手动创建对象和管理对象...

    google guice 3.0源码

    5. **注解处理(Annotation Processing)**:Guice使用Java的注解处理工具(APT)在编译时生成元数据,从而在运行时提高效率。这包括生成代理类和绑定类。 6. **AOP(面向切面编程)支持**:虽然Guice不是专门的AOP...

    Google Guice需要的jar

    总的来说,Google Guice是一个强大的依赖注入框架,通过使用Guice-3.0.jar和javax.inject.jar这两个库,开发者可以有效地组织和管理Java应用程序的组件,提高代码质量,降低维护成本。无论是小型项目还是大型企业级...

    google-guice用户手册

    ### Google Guice 用户手册知识点详解 #### 一、Google Guice 概览 **Google Guice** 是一个轻量级的 Java 依赖注入容器,它为 Java 5 及以上版本提供支持。与传统的对象创建方式相比,Guice 通过减少样板代码...

    Google Guice: Agile Lightweight Dependency Injection Framework

    Google Guice作为一款100%纯Java实现的依赖注入框架,以其简单性、高性能和易于使用的特性而受到广泛好评。本书《Google Guice: Agile Lightweight Dependency Injection Framework》旨在深入探讨Guice的核心概念和...

    google guice基础例子

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter...

    google-guice

    谷歌Guice,全名Google Guice,是一款轻量级的依赖注入框架,专为Java 5及更高版本设计。依赖注入(Dependency Injection,简称DI)是一种软件设计模式,旨在降低代码间的耦合度,提高可测试性和可维护性。Guice通过...

    Google Guice入世(转 附带一Guice1.0的简单测试代码)

    博文链接:https://avengerbevis.iteye.com/blog/69237

    guice-4.0-API文档-中文版.zip

    标签:google、inject、guice、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    shiro和guice整合,使用权限注解

    Apache Shiro 和 Google Guice 的整合是为了解决在Java应用程序中实现权限管理的问题。Shiro 是一个强大且易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。而 ...

    Guice使用练习

    这篇名为“Guice使用练习”的博客文章可能涵盖了以下几个方面: 1. **依赖注入基础**:Guice的核心在于注入,即框架自动将对象所需的依赖提供给对象,而不是由对象自己去查找或创建依赖。这有助于降低对象间的耦合...

    初试Guice(转)

    1. **注解驱动的配置**:Guice使用Java注解(如`@Inject`,`@Singleton`等)来声明依赖关系和组件生命周期。例如,`@Inject`注解用于标记一个字段或方法作为依赖注入的入口。 2. **模块(Module)**:Guice模块定义...

    Google的产品Guice

    用户指南 博文链接:https://hejianjie.iteye.com/blog/83374

    Guice 中文文档 例子

    Guice 是 Google 推出的一款轻量级的依赖注入框架,专为 Java 5 及其后续版本设计。依赖注入(Dependency Injection,简称 DI)是一种设计模式,它允许开发者在不直接创建对象的情况下,将依赖关系从代码中解耦出来...

Global site tag (gtag.js) - Google Analytics