本文通过范例简单地介绍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 用户指南 中文" Guice 是一个超轻量级的、下一代的、为 Java 5 及后续版本设计的依赖注入容器。它可以帮助 Java 企业应用开发社区解决连接对象方面的问题,例如 Web 应用如何访问中间层服务、...
描述中提到的“谷歌Guice开发英文文档”,表明这是一份英文版的学习资料,详细记载了如何使用Google Guice进行开发,而文档中的“对开发很有帮助,可当成工具书使用”强调了这份资料的实用性,可以作为开发者在开发...
- **模块化**:Guice使用`Module`类来定义依赖关系,使得配置更加模块化和可扩展。 - **类型安全**:Guice在编译时进行依赖注入的验证,可以捕获错误,避免运行时异常。 3. **Spring框架简介**: - **全面的解决...
Google Guice 这个高效的与Spring类似的依赖注入框架; MyBatis配置和使用; Google Guice与MyBatis集成,支持注解事务,简单的无法想象; Mybatis与mysql集成;实现发送邮件轮询; 源码是个web项目,里面有数据库的...
**Google Guice**,全称为Google Injection,是一个轻量级的依赖注入框架,它通过注解(Annotations)来实现对象的自动装配,简化了Java应用的构造和管理。Guice的核心理念是帮助开发者摆脱手动创建对象和管理对象...
5. **注解处理(Annotation Processing)**:Guice使用Java的注解处理工具(APT)在编译时生成元数据,从而在运行时提高效率。这包括生成代理类和绑定类。 6. **AOP(面向切面编程)支持**:虽然Guice不是专门的AOP...
总的来说,Google Guice是一个强大的依赖注入框架,通过使用Guice-3.0.jar和javax.inject.jar这两个库,开发者可以有效地组织和管理Java应用程序的组件,提高代码质量,降低维护成本。无论是小型项目还是大型企业级...
### Google Guice 用户手册知识点详解 #### 一、Google Guice 概览 **Google Guice** 是一个轻量级的 Java 依赖注入容器,它为 Java 5 及以上版本提供支持。与传统的对象创建方式相比,Guice 通过减少样板代码...
Google Guice作为一款100%纯Java实现的依赖注入框架,以其简单性、高性能和易于使用的特性而受到广泛好评。本书《Google Guice: Agile Lightweight Dependency Injection Framework》旨在深入探讨Guice的核心概念和...
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter...
谷歌Guice,全名Google Guice,是一款轻量级的依赖注入框架,专为Java 5及更高版本设计。依赖注入(Dependency Injection,简称DI)是一种软件设计模式,旨在降低代码间的耦合度,提高可测试性和可维护性。Guice通过...
博文链接:https://avengerbevis.iteye.com/blog/69237
标签:google、inject、guice、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
Apache Shiro 和 Google Guice 的整合是为了解决在Java应用程序中实现权限管理的问题。Shiro 是一个强大且易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。而 ...
这篇名为“Guice使用练习”的博客文章可能涵盖了以下几个方面: 1. **依赖注入基础**:Guice的核心在于注入,即框架自动将对象所需的依赖提供给对象,而不是由对象自己去查找或创建依赖。这有助于降低对象间的耦合...
1. **注解驱动的配置**:Guice使用Java注解(如`@Inject`,`@Singleton`等)来声明依赖关系和组件生命周期。例如,`@Inject`注解用于标记一个字段或方法作为依赖注入的入口。 2. **模块(Module)**:Guice模块定义...
用户指南 博文链接:https://hejianjie.iteye.com/blog/83374
Guice 是 Google 推出的一款轻量级的依赖注入框架,专为 Java 5 及其后续版本设计。依赖注入(Dependency Injection,简称 DI)是一种设计模式,它允许开发者在不直接创建对象的情况下,将依赖关系从代码中解耦出来...