由于绑定是在绑定模块中定义的,因此只要需要注入依赖关系,Guice就会使用它们。 如果不存在绑定,它可以尝试创建即时绑定。 绑定模块中存在的绑定称为显式绑定,具有更高的优先级,而即时绑定称为隐式绑定。 如果存在两种类型的绑定,则考虑使用显式绑定进行映射。
以下是三种即时绑定的示例。
Sr.No. | 绑定类型和描述 |
---|---|
1 | 可注射的构造函数 非私有,无参数构造函数符合即时绑定的条件。 另一种方法是使用@Inject批注来注释构造函数。 |
2 | @ImplementatedBy注释 @ImplementatedBy注释告诉guice有关实现类。 在这种情况下,绑定模块不需要绑定。 |
3 | @ProvidedBy注释 @ProvidedBy注释告诉guice有关实现类的提供者。 在这种情况下,绑定模块不需要绑定。 |