如何让一个 Guice 模块使用另一个 Guice 模块?

2022-09-01 05:39:39

假设我有一个Guice模块ProdModule,我想依靠其他GuiceModules,ProdDbModule和ProdPubSubModule。如何实现 ProdModule 的 configure()?


答案 1

您将安装其他模块

protected void configure(){
    install(new ProdDbModule());
    install(new ProdPubSubModule());
    // etc.
}

答案 2

虽然使用起来很方便,但只要您在创建以下模块时提供所有必需的模块,您甚至不需要其他模块:installinstallInjector

Injector injector = Guice.createInjector(new ProdDbModule(),
    new ProdPubSubModule(), new ProdModule());

这可以使您更灵活地在入口点类中仅更改其中一个模块,而无需修改自身。您还可以在模块中指示它需要其他模块使用这些方法提供哪些绑定。ProdModulerequireBinding


推荐