Guice Java提供了没有已知依赖性的方法?

时间:2019-12-12 19:48:18

标签: java guice

似乎缺少provides的文档,所以我在问这个问题。

考虑此Guice模块

public class MyModule extends AbstractModule {
  String TEMPLATE_PATH = '/path/to/templates';

  @Provides
  RateLimiter generateRateLimiter(UserPreferenceSelector prefSel) {
    return new EmailTemplate(new FileLocator(TEMPLATE_PATH), prefSel);
  }

  /* ...configure... */
}

对于方法generateRateLimiter,从何处获取UserPreferenceSelector prefSel?我看不到任何地方提供它。如何创建它以及UserPreferenceSelector的构造函数如何?

谢谢!

1 个答案:

答案 0 :(得分:0)

签出the binding resolution docs。当Guice制作ProviderProvider的参数类型为A时,Guice尝试查找ProviderA的绑定。在默认情况下,Guice寻找的东西(在最后中,即如果没有其他方法可以获取A)。这可能是您的情况:UserPreferenceSelector是否具有默认构造函数?