在我们的一个项目中,我们使用guice来设置应用程序的依赖树。由于特殊要求,我们创建了一个扩展guice Binder
接口的接口。该接口的实现使用guice提供的Binder
接口的实现,并添加了一些新功能。在调试应用程序时,我注意到在调用Guice.createInjector(Module... modules)
时,会将相同的绑定器传递给每个模块。最初,我使用传递的Binder
实现来创建实现我们接口的实例,但由于每个模块使用不同的实例,因此导致了问题。所以我的问题是:当guice创建新的Binder
时,是否有一个钩子可以用来创建我的实现的实例?通过钩子我的意思是我可以扩展的类或类似的东西。任何想法都将不胜感激。
乌罗什
答案 0 :(得分:1)
这是不可能的。
类com.google.inject.spi.Elements
执行整个绑定工作,请参阅使用RecordingBinder
直接创建的内部类new
。
com.google.inject.spi
包之外的任何东西。大多数对Guice内部的访问都是从那里提供的,如果你没有看到那里的东西,那么你可能想要一些错误和不受支持的东西。 Binder
就是这样的事情。