public interface ProvisionListenerListens for provisioning of objects. Useful for gathering timing information about provisioning, post-provision initialization, and more.
<T> void onProvision(ProvisionListener.ProvisionInvocation<T> provision)Invoked by Guice when an object requires provisioning. Provisioning occurs when Guice locates and injects the dependencies for a binding. For types bound to a Provider, provisioning encapsulates the
Provider.get()method. For toInstance or constant bindings, provisioning encapsulates the injecting of @
Injected fields or methods. For other types, provisioning encapsulates the construction of the object. If a type is bound within a
Scope, provisioning depends on the scope. Types bound in Singleton scope will only be provisioned once. Types bound in no scope will be provisioned every time they are injected. Other scopes define their own behavior for provisioning.
To perform the provision, call
ProvisionListener.ProvisionInvocation.provision(). If you do not explicitly call provision, it will be automatically done after this method returns. It is an error to call provision more than once.