在Google Guice中:我们可以实现带有注释@Singleton
的单例类,它不实现接口并尝试使用注释@Inject
将其注入到任何其他类中吗?此外,我还没有在AbstractModule
的扩展类中为该类配置任何绑定。是否有必要从接口实现类,我想知道绑定,如果我从接口实现单例类,然后它需要绑定,因为可能有多个类实现接口。
但是如果我有一个没有实现接口的类,那么是否需要在实现AbstractModule的类中绑定?
是的,您可以使用范围注释(如@Singleton
)标记实现类并直接注入它。
不需要在AbstractModule中绑定该类,但您可能希望使用Untargeted Binding这样做,原因如下:
bind
语句,Guice可能只会在尝试实现它时遇到您的类,这意味着您的应用程序可能会运行一段时间,然后Guice可以抛出有关缺少的依赖项的异常。requireExplicitBindings
启用该检查,此时您将需要一个bind
语句。