Google Guice初试之绑定1

来源:互联网 发布:买家淘宝退货流程图 编辑:程序博客网 时间:2024/05/21 04:19

Guice是google推出的一款轻量级DI框架

需要的jar有:

guice-3.0.jar

javax.inject.jar

所谓的绑定就是:将借口绑定到具体的实现类上,当我们通过接口这个引用来调用某个方法的时候,会动态的调用具体实现类的方法,这样客户端不用关系具体的实现逻辑。

(1)创建一个接口Hello.Java

/** *  * @author Java_Le * @Date 2014-5-1下午09:38:50 * @ClassName Hello.java */public interface Hello {void sayHello() ;}
(2)创建这个接口具体的实现类

/** *  * @author Java_Le * @Date 2014-5-1下午10:03:51 * @ClassName HelloImpl.java */public class HelloImpl implements Hello{@Overridepublic void sayHello() {System.out.println("HelloImpl say hello");}}
(3)创建guice框架中Module的实现类

package guice.binder;import com.google.inject.Binder;import com.google.inject.Module;import com.google.inject.Singleton;public class MyModule implements Module{@Overridepublic void configure(Binder binder) {//将借口hello.java 绑定到实现类HelloImpl.java上//Singleton:表示是scope是单列的,Guice中类的scope只有两类,单例,或者每次都是new的一个新的对象binder.bind(Hello.class).to(HelloImpl.class).in(Singleton.class) ;}}

(4)创建Client模拟测试

package guice.binder;import com.google.inject.Guice;import com.google.inject.Injector;public class Client {public static void main(String[] args) {Injector in = Guice.createInjector(new MyModule()) ;Hello hello = in.getInstance(Hello.class) ;//hello -->HelloImpl实例hello.sayHello() ;}}
输出结果:

HelloImpl say hello

总结

本例子就是将Hello这个接口和实现类HelloImpl关联起来,当我们用Guice想去获得这个接口实例的时候,实际返回的是HelloImpl的实例(并且可以维护室单列,还是动态创建的)。






0 0
原创粉丝点击