0

好的,所以情况并不像标题中那么简单。这是交易。

我有一个类 ComplexClass,它期望将几个参数注入其中。参数“A”在模块 A 中定义,而参数“B”在模块 B 中定义。另一方面,参数“C”在模块 C1 和模块 C2 中定义。

我有一个使用上述所有四个模块创建的注入器。对不起,但它必须是一个注射器。

现在,我想创建两个不同的 ComplexClass 实例——一个带有第三个参数来自模块 C1,第二个来自模块 C2。

谢谢!

4

1 回答 1

0

这个问题通常被称为“机器人腿问题”。

请参阅: http ://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions#How_do_I_build_two_similar_but_slightly_different_trees_of_objec

并在此处查看 Jesse Wilson 的回答: 如何使用 Google Guice 绑定不同的接口?

根据PrivateModules 解决方案,您只需在 s 内安装 C1 和 C2 的模块,每个模块都使用不同的绑定注释PrivateModule绑定您。ComplexClass

还有其他可能的解决方案,例如使用辅助注入来注入可能来自两个地方之一的依赖项。

于 2012-08-18T19:11:40.237 回答