如何在GIN中覆盖绑定

时间:2011-09-06 02:17:46

标签: gwt guice gin

我找到了Guice Overriding Binding in Guice的答案,但不知道如何在GWT中为GIN做同样的事情。

提前致谢!

2 个答案:

答案 0 :(得分:5)

据我所知,它不受支持。

回答你的评论:

如果你正在运行“纯”JUnit测试(不是GWTTestcases)你不使用GIN,你使用Guice,而在Guice中你可以覆盖模块。如果要重用GIN模块,请使用GinModuleAdapter包装它们。所以你可以这样做:

static class MyGinModule extends GinModule {
  ...
}
static class MyGuiceModule extends AbstractModule {
  ...
}

// And somewhere in your code, here's how you could create the Injector
Module myWrappedGinModule = new GinModuleAdapter(new MyGinModule());
Module myModule = Modules.override(myWrappedGinModule).with(new MyGuiceModule());
Injector injector = Guice.createInjector(myModule);

答案 1 :(得分:0)

在界面中使用@ImplementedBy注释。

注释中指定的类将是默认实现。

您可以指定其他实现,有效地覆盖默认值。

例如:

@ImplementedBy(MyWidgetImpl.class)
public interface MyWidget {
  //...
}

public class MyWidgetImpl implements MyWidget {
  //...
}