Comment passer outre obligatoire dans GIN
Question
Je trouve la réponse pour Guice Redéfinition de liaison dans Guice mais ne savent pas comment faire la même chose pour GIN GWT.
Merci à l'avance!
La solution
Pour autant que je sache, ce n'est pas pris en charge.
Pour répondre à votre commentaire:
Si vous utilisez des tests JUnit « purs » (non GWTTestcases) vous n'utilisez pas GIN, vous utilisez Guice, et Guice vous pouvez remplacer les modules. Si vous souhaitez réutiliser des modules GIN, puis les envelopper en utilisant GinModuleAdapter
. Ainsi, vous pouvez faire quelque chose comme ceci:
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);
Autres conseils
Utilisez l'annotation @ImplementedBy
dans votre interface.
La classe spécifiée dans l'annotation sera la mise en œuvre par défaut.
Vous pouvez spécifier une autre implémentation, la valeur par défaut écrasant effectivement.
Par exemple:
@ImplementedBy(MyWidgetImpl.class)
public interface MyWidget {
//...
}
public class MyWidgetImpl implements MyWidget {
//...
}