public final class InjectorBuilder
extends java.lang.Object
InjectorCreator strategy.
InjectorBuilder
.fromModule(new MyApplicationModule())
.overrideWith(new OverridesForTesting())
.traceEachElement(new BindingTracingVisitor())
.createInjector();
| Modifier and Type | Method and Description |
|---|---|
InjectorBuilder |
combineWith(com.google.inject.Module... modules)
Add additional bindings to the module tracked by the DSL
|
LifecycleInjector |
createInjector() |
<I extends com.google.inject.Injector> |
createInjector(InjectorCreator<I> creator) |
LifecycleInjector |
createInjector(com.google.inject.Stage stage) |
<I extends com.google.inject.Injector> |
createInjector(com.google.inject.Stage stage,
InjectorCreator<I> creator)
Create the injector in the specified stage using the specified InjectorCreator
strategy.
|
InjectorBuilder |
filter(com.google.inject.spi.ElementVisitor<java.lang.Boolean> predicate)
Filter out elements for which the provided visitor returns true.
|
static InjectorBuilder |
fromModule(com.google.inject.Module module)
Start the builder using the specified module.
|
static InjectorBuilder |
fromModules(java.util.List<com.google.inject.Module> modules) |
static InjectorBuilder |
fromModules(com.google.inject.Module... additionalModules) |
java.util.List<com.google.inject.spi.Element> |
getElements() |
InjectorBuilder |
map(ModuleTransformer transformer)
Extend the core DSL by providing a custom ModuleTransformer.
|
InjectorBuilder |
overrideWith(java.util.Collection<com.google.inject.Module> modules) |
InjectorBuilder |
overrideWith(com.google.inject.Module... modules)
Override all existing bindings with bindings in the provided modules.
|
InjectorBuilder |
stripStaticInjections()
Filter out all bindings using requestStaticInjection
|
InjectorBuilder |
traceEachElement(com.google.inject.spi.ElementVisitor<java.lang.String> visitor)
Iterator through all elements of the current module and write the output of the
ElementVisitor to the logger at debug level.
|
InjectorBuilder |
traceEachKey()
Log the current binding state.
|
InjectorBuilder |
warnOfStaticInjections()
Log a warning that static injection is being used.
|
public static InjectorBuilder fromModule(com.google.inject.Module module)
module - public static InjectorBuilder fromModules(com.google.inject.Module... additionalModules)
public static InjectorBuilder fromModules(java.util.List<com.google.inject.Module> modules)
public InjectorBuilder overrideWith(com.google.inject.Module... modules)
Modules.override(com.google.inject.Module...) and is preferable
to using Modules.override(com.google.inject.Module...). The approach here is to attempt to promote
the use of Modules.override(com.google.inject.Module...) as a single top level override. Using
Modules.override(com.google.inject.Module...) inside Guice modules can result in duplicate bindings
when the same module is installed in multiple placed.modules - public InjectorBuilder overrideWith(java.util.Collection<com.google.inject.Module> modules)
overrideWith(Module...)public InjectorBuilder combineWith(com.google.inject.Module... modules)
modules - public InjectorBuilder traceEachElement(com.google.inject.spi.ElementVisitor<java.lang.String> visitor)
visitor - public InjectorBuilder traceEachKey()
public InjectorBuilder warnOfStaticInjections()
public InjectorBuilder map(ModuleTransformer transformer)
transformer - public InjectorBuilder filter(com.google.inject.spi.ElementVisitor<java.lang.Boolean> predicate)
predicate - public InjectorBuilder stripStaticInjections()
public java.util.List<com.google.inject.spi.Element> getElements()
public <I extends com.google.inject.Injector> I createInjector(com.google.inject.Stage stage,
InjectorCreator<I> creator)
Guice.createInjector(com.google.inject.Module...).stage - Stage in which the injector is running. It is recommended to run in Stage.DEVELOPEMENT
since it treats all singletons as lazy as opposed to defaulting to eager instantiation which
could result in instantiating unwanted classes.creator - public <I extends com.google.inject.Injector> I createInjector(InjectorCreator<I> creator)
InjectorBuilder#createInjector(Stage, InjectorCreator)}public LifecycleInjector createInjector(com.google.inject.Stage stage)
InjectorBuilder#createInjector(Stage, InjectorCreator)}public LifecycleInjector createInjector()
InjectorBuilder#createInjector(Stage, InjectorCreator)}