public interface InstanceLocator
InstanceProvider
should be used.
This facility should be used sparingly, frequent use indicates use of the
Service
Locator Pattern instead of the
Dependency
Injection Pattern.InstanceProvider
Modifier and Type | Field and Description |
---|---|
static String |
INSTANCE_LOCATOR_ATTRIBUTE
Denotes the name of a
HttpServletRequest attribute which if present
on a request indicates an attribute whose value will be an instance of
InstanceLocator |
Modifier and Type | Method and Description |
---|---|
<T> InstanceProvider<T> |
select(Class<T> instanceType,
Annotation... qualifiers)
Obtains a child Instance for the given required type and additional
required qualifiers.
|
static final String INSTANCE_LOCATOR_ATTRIBUTE
HttpServletRequest
attribute which if present
on a request indicates an attribute whose value will be an instance of
InstanceLocator
void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { // Get request scoped InstanceLocator final InstanceLocator locator = (InstanceLocator) request .getAttribute(InstanceLocator.INSTANCE_LOCATOR_ATTRIBUTE); if (locator != null) { final SomeService service = locator.select(SomeService.class); // use SomeService instance... } }
<T> InstanceProvider<T> select(Class<T> instanceType, Annotation... qualifiers)
instanceType
- The type (contract) of the service to retrievequalifiers
- Additional qualifiers that constrain which implementation to matchInstanceProvider
for the specified type and qualifiers.
This value is never null.