0

在我们的一个项目中,我们使用 guice 来设置应用程序的依赖关系树。由于特殊要求,我们创建了一个扩展 guice接口的Binder接口。该接口的实现使用了Binderguice 提供的接口的实现,并添加了一些新功能。在调试应用程序时,我注意到当Guice.createInjector(Module... modules)被调用时,相同的活页夹被传递给每个模块。最初我使用传递的实现Binder来创建一个实现我们接口的实例,但这会导致问题,因为每个模块都使用不同的实例。所以我的问题是:每当 guice 创建新的时,我可以使用一个钩子来创建我的实现实例吗?Binder? 我所说的钩子是指我可以扩展的类或类似的东西。任何想法将不胜感激。

乌鲁斯

4

1 回答 1

1

这不可能。

com.google.inject.spi.Elements完成整个绑定工作,查看它的内部类RecordingBinder,它是直接用new.

顺便说一句,如果你想扩展 Guice 内部,我认为你最好不要使用任何外部com.google.inject.spi包。大部分对 Guice 内部的访问都是从那里提供的,如果你在那里看不到任何东西,那么你可能想要一些错误和不受支持的东西。 Binder就是这样的一件事。

于 2013-10-10T18:43:26.137 回答