Package org.elasticsearch.common.inject
Annotation Interface Inject
Annotates members of your implementation class (constructors, methods
and fields) into which the
Injector
should inject values.
The Injector fulfills injection requests for:
- Every instance it constructs. The class being constructed must have
exactly one of its constructors marked with
@Inject
or must have a constructor taking no parameters. The Injector then proceeds to perform method and field injections. - Pre-constructed instances passed to
Injector.injectMembers(java.lang.Object)
,LinkedBindingBuilder.toInstance(Object)
andLinkedBindingBuilder.toProvider(Provider)
. In this case all constructors are, of course, ignored. - Static fields and methods of classes which any
Module
has specifically requested static injection for, usingBinder.requestStaticInjection(java.lang.Class<?>...)
.
In all cases, a member can be injected regardless of its Java access specifier (private, default, protected, public).
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionboolean
If true, and the appropriate binding is not found, the Injector will skip injection of this method or field rather than produce an error.
-
Element Details
-
optional
boolean optionalIf true, and the appropriate binding is not found, the Injector will skip injection of this method or field rather than produce an error. When applied to a field, any default value already assigned to the field will remain (guice will not actively null out the field). When applied to a method, the method will only be invoked if bindings for all parameters are found. When applied to a constructor, an error will result upon Injector creation.- Default:
- false
-