This question already has answers here:
Guice @Provides Methods vs Provider Classes
                                
                                    (2个答案)
                                
                        
                                4年前关闭。
            
                    
试图了解使用Guice进行依赖注入。在哪种情况下,我们在模块中使用@Provides,在哪种情况下使用toProvider绑定?

最佳答案

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

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

请记住,@Provides方法不能引发异常;因此异常处理可能是将复杂性转移到完整类的原因之一。

08-07 12:21