Guice 简明教程

Google Guice - Just-In-Time Bindings

在绑定模块中定义绑定信息时,Guice 会在需要注入依赖项时使用这些信息。如果没有绑定信息,它会尝试创建即时绑定信息。在绑定模块中存在的绑定信息称为显式绑定信息,具有更高的优先级,而即时绑定信息称为隐式绑定信息。如果两种类型的信息都存在,则会考虑显式绑定信息进行映射。

以下是三种即时绑定信息的示例。

Binding Type

Description

Injectable Constructors

非私有的无参数构造函数适于即时绑定。另一种方法是使用 @Inject 注释为某个构造函数添加注释。

@ImplementedBy annotation

@ImplementedBy 注释将实现类告知 guice。在这种情况下,不需要在绑定模块中进行绑定。

@ProvidedBy annotation

@ProvidedBy 注释将实现类的提供程序告知 guice。在这种情况下,不需要在绑定模块中进行绑定。