Google Guice - 即时绑定


由于绑定是在 Binding Module 中定义的,Guice 在需要注入依赖项时就会使用它们。如果绑定不存在,它可以尝试创建即时绑定。绑定模块中存在的绑定称为显式绑定,并且具有更高的优先级,而即时绑定称为隐式绑定。如果两种类型的绑定都存在,则考虑使用显式绑定进行映射。

以下是三种类型的即时绑定的示例。

装订类型 描述
可注入构造函数 非私有、无参构造函数有资格进行即时绑定。另一种方法是使用 @Inject 注解来注解构造函数。
@ImplementedBy注解 @ImplementedBy 注释告诉我们有关实现类的信息。在这种情况下,绑定模块中不需要绑定。
@ProvidedBy注解 @ProvidedBy注释告诉有关实现类的提供者的信息。在这种情况下,绑定模块中不需要绑定。