Guice Modules.override在多个模块中指定的绑定?

时间:2016-03-24 21:01:24

标签: java guice

我有两个Guice模块,每个模块在同一个界面上执行@Provides。每个都独立运行就好了。

现在我有一个想要引入这两个模块的第3个模块。我希望第3个模块的@Provides胜过其他模块,这似乎是Modules.override的理想选择。确实,这很有效。

Modules.override(childModule1).with(parent);

父母胜过孩子的约束力。太好了!

然而,这失败了:(。

Modules.override(childModule1, childModule2).with(parent);

在这种情况下,它抱怨与Foo的绑定被childModule2“绑定”了。看起来覆盖只有在有一个子模块进行提供时才有效。是否有一些我错过了这项工作?

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,虽然它似乎坚定地在黑客类别中。我不得不筑巢。

Modules.override(Modules.override(childModule1).with(childModule2)).with(parent);