Package com.google.inject
Interface Provider<T>
-
- Type Parameters:
T
- the type of object this provides
- All Superinterfaces:
javax.inject.Provider<T>
- All Known Subinterfaces:
ProviderWithDependencies<T>
,ProviderWithExtensionVisitor<T>
- All Known Implementing Classes:
FactoryProvider
public interface Provider<T> extends javax.inject.Provider<T>
An object capable of providing instances of typeT
. 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 aT
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 ofProvider<T>
, which decides when to delegate to the backing provider and when to provide the instance some other way. - The
Injector
offers access to theProvider<T>
it uses to fulfill requests for a given key, via theInjector.getProvider(com.google.inject.Key<T>)
methods.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description T
get()
Provides an instance ofT
.
-
-
-
Method Detail
-
get
T get()
Provides an instance ofT
.- Specified by:
get
in interfacejavax.inject.Provider<T>
- Throws:
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.
-
-