public interface Container extends Serializable
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);
ContainerBuilder
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_NAME
Default dependency name.
|
Modifier and Type | Method and Description |
---|---|
<T> T |
getInstance(Class<T> type)
Convenience method. Equivalent to
getInstance(type,
DEFAULT_NAME) . |
<T> T |
getInstance(Class<T> type,
String name)
Gets an instance of the given dependency which was declared in
ContainerBuilder . |
Set<String> |
getInstanceNames(Class<?> type)
Gets a set of all registered names for the given type
|
<T> T |
inject(Class<T> implementation)
Creates and injects a new instance of type
implementation . |
void |
inject(Object o)
Injects dependencies into the fields and methods of an existing object.
|
void |
removeScopeStrategy()
Removes the scope strategy for the current thread.
|
void |
setScopeStrategy(Scope.Strategy scopeStrategy)
Sets the scope strategy for the current thread.
|
static final String DEFAULT_NAME
void inject(Object o)
o
- object to inject<T> T inject(Class<T> implementation)
implementation
.T
- typeimplementation
- of dependency<T> T getInstance(Class<T> type, String name)
ContainerBuilder
.T
- typetype
- of dependencyname
- of dependency<T> T getInstance(Class<T> type)
getInstance(type,
DEFAULT_NAME)
.T
- typetype
- of dependencySet<String> getInstanceNames(Class<?> type)
type
- The instance typevoid setScopeStrategy(Scope.Strategy scopeStrategy)
scopeStrategy
- scope strategyvoid removeScopeStrategy()
Copyright © 2000–2020 Apache Software Foundation. All rights reserved.