我想问一下两者之间有什么区别

bindConstant().annotatedWith(Names.named("keepAliveInterval")).to(60);


bind(Integer.TYPE).annotatedWith(Names.named("keepAliveInterval")).toInstance(60);

我想用Names.bindProperties(binder(),prop);加载所有配置属性。在我的模块中,我发现它使用后一个绑定(bind)属性。

感谢和问候

马雷克

最佳答案

我认为使用bindConstant()的原因是:

  • 它要求您使用带注释的绑定(bind)。您不能做bindConstant().to(foo)。由于您与之绑定(bind)的类型是基元和String,因此无注释的绑定(bind)对它们中的任何一个都不太有意义。
  • 它不需要您指定类型(因此,bindConstant()int绑定(bind)到Integer.class而不是Integer.TYPE,而不需要指定类型),因此所需的工作较少。

  • 我认为Names.bindProperties不使用bindConstant只是因为它是内部代码,可以在绑定(bind)过程中跳过一两个步骤,再多一点代码即可。在您自己的模块中,我将只使用bindConstant,因为它简单易懂。

    07-26 07:28