由于绑定是在绑定模块中定义的,Google Guice 会在需要注入依赖项时使用它们。如果不存在绑定,它可以尝试创建即时绑定。绑定模块中存在的绑定称为显式绑定并且具有更高的优先级,而即时绑定称为隐式绑定。如果两种类型的绑定都存在,则考虑使用显式绑定进行映射。
以下是三种类型的即时绑定的示例。
绑定类型 | 描述 |
---|---|
可注入的构造函数 | 非私有、无参数构造函数有资格进行即时绑定。另一种方法是使用@Inject 注解来注释构造函数。 |
@ImplementedBy注解 | @ImplementedBy 注解告诉 guice 关于实现类。在这种情况下,绑定模块中不需要绑定。 |
@ProvidedBy注解 | @ProvidedBy 注解告诉 guice 关于实现类的提供者。在这种情况下,绑定模块中不需要绑定。 |