T
- the type of object this providespublic interface Provider<T>
T
. Providers are used in numerous ways
by Guice:
Provider
instead, to control exactly how Guice creates or obtains instances for the binding.
Provider<T>
instance injected,
rather than having a T
injected directly. This may give you access to multiple
instances, instances you wish to safely mutate and discard, instances which are out of scope
(e.g. using a @RequestScoped
object from within a @SessionScoped
object), or
instances that will be initialized lazily.
Scope
is implemented as a decorator of Provider<T>
, which decides
when to delegate to the backing provider and when to provide the instance some other way.
Injector
offers access to the Provider<T>
it uses to fulfill requests
for a given key, via the Injector.getProvider(org.elasticsearch.common.inject.Key<T>)
methods.
Modifier and Type | Method and Description |
---|---|
T |
get()
Provides an instance of
T . |
T get()
T
. Must never return null
.OutOfScopeException
- when an attempt is made to access a scoped object while the scope
in question is not currently activeProvisionException
- if an instance cannot be provided. Such exceptions include messages
and throwables to describe why provision failed.