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 翻译的不错,呵呵