Google Guice - Just-In-Time Bindings


Advertisements

As bindings are defined in Binding Module, Guice uses them whenever it needs to inject dependencies. In case bindings are not present, it can attempt to create just-in-time bindings. Bindings present in binding module are called explicit bindings and are of higher precedence whereas just-in-time bindings are called implicit bindings. If both type of bindings are present, explicit bindings are considered for mapping.

Following are the examples of three types of Just-in-time bindings.

Binding Type Description
Injectable Constructors Non-private, No-argument constructors are eligible for just-in-time bindings. Another way is to annotate a constructor with @Inject annotation.
@ImplementedBy annotation @ImplementedBy annotation tells the guice about the implementation class. No binding is required in Binding Module in such a case.
@ProvidedBy annotation @ProvidedBy annotation tells the guice about the provider of implementation class. No binding is required in Binding Module in such a case.
Advertisements