GoogleGuice范例解说之使用入门

本文通过范例简单地介绍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.javaview plaincopy to clipboardprint?package com.test.guice;public interface HelloGuice {public void sayHello();}package com.test.guice;public interface HelloGuice {public void sayHello();}HelloGuiceImpl.javaview 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.javaview 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.javaview 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.javaview 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.javaview 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等的集成,本文未加涉及,请参考其他文章。

我想,旅行需要孤独,需要一个人慢慢体会,静静思考。

GoogleGuice范例解说之使用入门

相关文章:

你感兴趣的文章:

标签云: