Package com.google.inject.util
Class Modules
- java.lang.Object
-
- com.google.inject.util.Modules
-
public final class Modules extends java.lang.Object
Static utility methods for creating and working with instances ofModule
.- Since:
- 2.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Modules.CombinedModule
private static class
Modules.DisableCircularProxiesModule
private static class
Modules.EmptyModule
private static class
Modules.ModuleWriter
static interface
Modules.OverriddenModuleBuilder
See the EDSL example atoverride()
.(package private) static class
Modules.OverrideModule
private static class
Modules.RealOverriddenModuleBuilder
private static class
Modules.RequireAtInjectOnConstructorsModule
private static class
Modules.RequireExactBindingAnnotationsModule
private static class
Modules.RequireExplicitBindingsModule
-
Field Summary
Fields Modifier and Type Field Description static Module
EMPTY_MODULE
-
Constructor Summary
Constructors Modifier Constructor Description private
Modules()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static Module
combine()
Deprecated.this method call is effectively a no-op, just remove it.static Module
combine(Module module)
Deprecated.there's no need to "combine" one module; just install it directly.static Module
combine(Module... modules)
Returns a new module that installs all ofmodules
.static Module
combine(java.lang.Iterable<? extends Module> modules)
Returns a new module that installs all ofmodules
.static Module
disableCircularProxiesModule()
Returns a module that will configure the injector to disable circular proxies.private static Module
extractScanners(java.lang.Iterable<Element> elements)
static Modules.OverriddenModuleBuilder
override()
Deprecated.there's no reason to useModules.override()
without any arguments.static Modules.OverriddenModuleBuilder
override(Module... modules)
Returns a builder that creates a module that overlays override modules over the given modules.static Modules.OverriddenModuleBuilder
override(java.lang.Iterable<? extends Module> modules)
Returns a builder that creates a module that overlays override modules over the given modules.static Module
requireAtInjectOnConstructorsModule()
Returns a module that will configure the injector to require @Inject
on constructors.static Module
requireExactBindingAnnotationsModule()
Returns a module that will configure the injector to require an exactly matching binding annotation.static Module
requireExplicitBindingsModule()
Returns a module that will configure the injector to require explicit bindings.
-
-
-
Field Detail
-
EMPTY_MODULE
public static final Module EMPTY_MODULE
-
-
Method Detail
-
override
public static Modules.OverriddenModuleBuilder override(Module... modules)
Returns a builder that creates a module that overlays override modules over the given modules. If a key is bound in both sets of modules, only the binding from the override modules is kept. If a singlePrivateModule
is supplied or all elements are from a singlePrivateBinder
, then this will overwrite the private bindings. Otherwise, private bindings will not be overwritten unless they are exposed. This can be used to replace the bindings of a production module with test bindings:Module functionalTestModule = Modules.override(new ProductionModule()).with(new TestModule());
Prefer to write smaller modules that can be reused and tested without overrides.
- Parameters:
modules
- the modules whose bindings are open to be overridden
-
override
@Deprecated public static Modules.OverriddenModuleBuilder override()
Deprecated.there's no reason to useModules.override()
without any arguments.
-
override
public static Modules.OverriddenModuleBuilder override(java.lang.Iterable<? extends Module> modules)
Returns a builder that creates a module that overlays override modules over the given modules. If a key is bound in both sets of modules, only the binding from the override modules is kept. If a singlePrivateModule
is supplied or all elements are from a singlePrivateBinder
, then this will overwrite the private bindings. Otherwise, private bindings will not be overwritten unless they are exposed. This can be used to replace the bindings of a production module with test bindings:Module functionalTestModule = Modules.override(getProductionModules()).with(getTestModules());
Prefer to write smaller modules that can be reused and tested without overrides.
- Parameters:
modules
- the modules whose bindings are open to be overridden
-
combine
public static Module combine(Module... modules)
Returns a new module that installs all ofmodules
.Although sometimes helpful, this method is rarely necessary. Most Guice APIs accept multiple arguments or (like
install()
) can be called repeatedly. Where possible, external APIs that require a single module should similarly be adapted to permit multiple modules.
-
combine
@Deprecated public static Module combine(Module module)
Deprecated.there's no need to "combine" one module; just install it directly.
-
combine
@Deprecated public static Module combine()
Deprecated.this method call is effectively a no-op, just remove it.
-
combine
public static Module combine(java.lang.Iterable<? extends Module> modules)
Returns a new module that installs all ofmodules
.Although sometimes helpful, this method is rarely necessary. Most Guice APIs accept multiple arguments or (like
install()
) can be called repeatedly. Where possible, external APIs that require a single module should similarly be adapted to permit multiple modules.
-
requireExplicitBindingsModule
public static Module requireExplicitBindingsModule()
Returns a module that will configure the injector to require explicit bindings.- Since:
- 4.2.3
-
requireAtInjectOnConstructorsModule
public static Module requireAtInjectOnConstructorsModule()
Returns a module that will configure the injector to require @Inject
on constructors.- Since:
- 4.2.3
- See Also:
Binder.requireAtInjectOnConstructors()
-
requireExactBindingAnnotationsModule
public static Module requireExactBindingAnnotationsModule()
Returns a module that will configure the injector to require an exactly matching binding annotation.- Since:
- 4.2.3
- See Also:
Binder.requireExactBindingAnnotations()
-
disableCircularProxiesModule
public static Module disableCircularProxiesModule()
Returns a module that will configure the injector to disable circular proxies.- Since:
- 4.2.3
-
-