为了在Guice中使用“显式”绑定,我可以binder().requireExplicitBindings()
在模块实现中调用,例如
public class MyExampleModule extends AbstractModule {
@Override
protected void configure() {
super.configure();
binder().requireExplicitBindings();
...
}
}
关于Guice API,它看起来像我在我的应用程序的所有模块实现中都需要这样做。
是否没有一种方法可以针对整个应用程序在一个地方进行配置?
我正在使用Guice 4.2.x
活页夹配置选项requireExplicitBindings()
对于使用的所有位置都是全局的Binder
。因此,除非您对Guice SPI做一些不寻常的事情,否则它适用于构成同一部分的所有绑定Injector
。
最佳实践是Injector
每个应用程序只有一个,因此Binder
选项已经是有效的全局选项。
对于它的价值,我认为requireExplicitBindings()
是过大了。诸如此类的东西requireAtInjectOnConstructors()
通过隐式绑定解决了最严重的问题,同时仍然允许基于带注释的构造函数的JSR-330依赖项注入,这可能是非常方便的功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句