Package org.apache.struts2.inject
Interface Container
- All Superinterfaces:
Serializable
- All Known Implementing Classes:
MockContainer
Injects dependencies into constructors, methods and fields annotated with
Inject
. Immutable.
When injecting a method or constructor, you can additionally annotate
its parameters with Inject
and specify a dependency name. When a
parameter has no annotation, the container uses the name from the method or
constructor's Inject
annotation respectively.
For example:
class Foo { // Inject the int constant named "i". @Inject("i") int i; // Inject the default implementation of Bar and the String constant // named "s". @Inject Foo(Bar bar, @Inject("s") String s) { ... } // Inject the default implementation of Baz and the Bob implementation // named "foo". @Inject void initialize(Baz baz, @Inject("foo") Bob bob) { ... } // Inject the default implementation of Tee. @Inject void setTee(Tee tee) { ... } }
To create and inject an instance of Foo
:
Container c = ...; Foo foo = c.inject(Foo.class);
- Author:
- crazybob@google.com (Bob Lee)
- See Also:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescription<T> T
getInstance
(Class<T> type) Convenience method. Equivalent togetInstance(type, DEFAULT_NAME)
.<T> T
getInstance
(Class<T> type, String name) Gets an instance of the given dependency which was declared inContainerBuilder
.getInstanceNames
(Class<?> type) Gets a set of all registered names for the given type<T> T
Creates and injects a new instance of typeimplementation
.void
Injects dependencies into the fields and methods of an existing object.void
Removes the scope strategy for the current thread.void
setScopeStrategy
(Scope.Strategy scopeStrategy) Sets the scope strategy for the current thread.
-
Field Details
-
DEFAULT_NAME
Default dependency name.- See Also:
-
-
Method Details
-
inject
Injects dependencies into the fields and methods of an existing object.- Parameters:
o
- object to inject
-
inject
Creates and injects a new instance of typeimplementation
.- Type Parameters:
T
- type- Parameters:
implementation
- of dependency- Returns:
- instance
-
getInstance
Gets an instance of the given dependency which was declared inContainerBuilder
.- Type Parameters:
T
- type- Parameters:
type
- of dependencyname
- of dependency- Returns:
- instance
-
getInstance
Convenience method. Equivalent togetInstance(type, DEFAULT_NAME)
.- Type Parameters:
T
- type- Parameters:
type
- of dependency- Returns:
- instance
-
getInstanceNames
Gets a set of all registered names for the given type- Parameters:
type
- The instance type- Returns:
- A set of registered names or empty set if no instances are registered for that type
-
setScopeStrategy
Sets the scope strategy for the current thread.- Parameters:
scopeStrategy
- scope strategy
-
removeScopeStrategy
void removeScopeStrategy()Removes the scope strategy for the current thread.
-