读书人

Guice2.0的变更第二部分 从Guice1

发布时间: 2012-10-26 10:30:59 作者: rapoo

Guice2.0的变化——第二部分 从Guice1.0迁徙到2.0

public class FooTest extends TestCase { public void testFoo() { Foo foo = Guice.createInjector().getInstance(FakeFoo.class) } class FakeFoo implements Foo { @Inject TestFoo() {...} }}

assertEquals(Key.get(int.class), Key.get(Integer.class));

assertEquals(TypeLiteral.get(int.class), TypeLiteral.get(Integer.class));

<!----><!----><!---->

这样仍然是通过不过的,所以这个只针对com.google.inject.Key。

?

?

?

<!----><!----><!---->

AnnotationImplementations

?

Guice2.0修改了对那些没有属性标注(filedless annotations)的处理方式——强制你必须实现equals() 和 hashCode() 两个方法。如果以前在Guice1.0中没有实现这两个方法恰巧又能用,现在注意已经在Guice2.0中已经无法正常使用了。

?

?

Injector.getBinding

?

Guice2.0会在绑定的类或接口无法正常解析时,抛出异常。但原来的老版本Guice1.0会简单的返回一个null。如果你还是想这么做的话,可以调用injector.getBindings().get(key)来实现。

?

?

SPI Changes

?

SourceProviders已经被Binder.withSource和Binder.skipSources替代了。这些新的方法相对来说更容易调用和测试,毕竟它们并不需要什么静态初始化(staticinitialization)或静态依赖(staticdependencies)之类的了。

?

?

?

?

?

全文完.............

?

?

1 楼 harry 2009-01-20 翻译的不错,呵呵

读书人网 >软件架构设计

热点推荐