guice入门教程helloworld篇

guice据称比spring运行快100倍,我觉得网上是在瞎忽悠的。guice的实现是借助jdk1.5的Annotation特性实现的,如果你的jdk还是1.4请不要用哦

下面带大家一起helloworld。
新建一个web工程(就是为了方便jar的部署):guiceDemo
引入下面的jar文件

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当然,为了测试要引入junit.jar

现在开始写第一种实现,用Module实现。

创建接口HelloGuice.java
package org.lee.guice.module.demo;

public interface HelloGuice {
 public void sayHello();[/color]
}


接口实现类HelloGuiceImpl.java
package org.lee.guice.module.demo;

public class HelloGuiceImpl implements HelloGuice {
	public void sayHello() {
		System.out.println("hello word");
		
	}

}


创建HelloGuiceModule.java(这里我告诉大家,因为它比spring快100倍其实就是说ioc。这个文件替代了spring的配置文件)
package org.lee.guice.module.demo;

import com.google.inject.Binder;
import com.google.inject.Module;

public class HelloGuiceModule implements Module{

	@Override
	public void configure(Binder binder) {
		binder.bind(HelloGuice.class).to(HelloGuiceImpl.class);
		
	}

}


测试类TestGuice.java
package org.lee.guice.module.demo;

import com.google.inject.Guice;
import com.google.inject.Injector;

import junit.framework.TestCase;

public class TestGuice extends  TestCase{
	public void testHelloGuice(){
		Injector injector = Guice.createInjector(new HelloGuiceModule());
		HelloGuice helloGuice = injector.getInstance(HelloGuice.class);
		helloGuice.sayHello();
	}

}


运行结果helloword。
我在测试的是很发现他很慢,当然比spring快多了
用注解的方式注入,发现不是一般的快,那是相当的快
第二种实现:
业务接口
package org.lee.guice.Annotation.demo;

import com.google.inject.ImplementedBy;

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

业务接口实现:
package org.lee.guice.Annotation.demo;

public class HelloGuiceImpl implements HelloGuice {

	@Override
	public void sayHello() {
		System.out.println("hello word");
		
	}

}

测试
package org.lee.guice.Annotation.demo;

import com.google.inject.Guice;
import com.google.inject.Injector;

import junit.framework.TestCase;

public class TestGuice extends  TestCase{
	public void testHelloGuice(){
	Injector injector = Guice.createInjector();
	HelloGuice  helloGuice = injector.getInstance(HelloGuice.class);
	helloGuice.sayHello();
	}

}


结果测试时helloword
第二种实现和第一种的区别在于注入通过注解如入的

你可能感兴趣的:(java,spring,Google,JUnit,IOC)