| com.google.inject.Provider<T> |
Known Indirect Subclasses
|
Class Overview
An object capable of providing instances of type T. Providers are used in numerous ways
by Guice:
- When the default means for obtaining instances (an injectable or parameterless constructor)
is insufficient for a particular binding, the module can specify a custom
Provider
instead, to control exactly how Guice creates or obtains instances for the binding.
- An implementation class may always choose to have a
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.
- A custom
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.
- The
Injector offers access to the Provider<T> it uses to fulfill requests
for a given key, via the getProvider(Key) methods.
Summary
| Public Methods |
|
abstract
T
|
get()
Provides an instance of T.
|
|
[Expand]
Inherited Methods |
From interface
javax.inject.Provider
|
Public Methods
public
abstract
T
get
()
Provides an instance of T. Must never return null.
Throws
| OutOfScopeException
| when an attempt is made to access a scoped object while the scope
in question is not currently active |
| ProvisionException
| if an instance cannot be provided. Such exceptions include messages
and throwables to describe why provision failed.
|