Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29947398
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2008-10-14 16:00:19

本文通过范例简单地介绍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
package com.test.guice;

public interface HelloGuice {
    public void sayHello();
}


HelloGuiceImpl.java
package com.test.guice;

public class HelloGuiceImpl implements HelloGuice {

    public void sayHello() {
        System.out.println("Hello Guice!");
    }
}

HelloGuiceModule.java
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
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
package com.test.guice;

import com.google.inject.ImplementedBy;

@ImplementedBy(HelloGuiceImpl.class)
public interface HelloGuice {
    public void sayHello();
}

TestGuice.java
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等的集成,本文未加涉及,请参考其他文章。
阅读(2170) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~