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.