确定guice何时初始化Binder的新实例

时间:2013-10-10 10:49:25

标签: java ioc-container guice

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

乌罗什

1 个答案:

答案 0 :(得分:1)

这是不可能的。

com.google.inject.spi.Elements执行整个绑定工作,请参阅使用RecordingBinder直接创建的内部类new

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