Guice:@Provider 与 toProvider 绑定

Guice: @Provider vs toProvider binding

尝试使用 Guice 了解依赖注入。在哪些情况下我们使用 @Provides 以及在哪些情况下我们使用模块中的 toProvider 绑定?

当你使用@Provides时,你在你的模块中写了一个方法。当您使用 toProvider 时,您实际上创建了一个完整的 class,它具有制作 class 的所有复杂性,而不是单个方法。

最终,两者都可以工作,并且都允许您传入注入的依赖项。只需选择最适合您在特定用例中所需的复杂程度的一种。

记住 @Provides 方法不能抛出异常;因此异常处理可能是将复杂性卸载到完整 class.

的原因之一