Package com.google.inject.util
Class Modules
java.lang.Object
com.google.inject.util.Modules
Static utility methods for creating and working with instances of
Module
.- Since:
- 2.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
private static final class
private static class
private static class
static interface
See the EDSL example atoverride()
.(package private) static class
private static final class
private static final class
private static final class
private static final class
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Module
combine()
Deprecated.this method call is effectively a no-op, just remove it.static Module
Deprecated.there's no need to "combine" one module; just install it directly.static Module
Returns a new module that installs all ofmodules
.static Module
Returns a new module that installs all ofmodules
.static Module
Returns a module that will configure the injector to disable circular proxies.private static Module
extractScanners
(Iterable<Element> elements) override()
Deprecated.there's no reason to useModules.override()
without any arguments.Returns a builder that creates a module that overlays override modules over the given modules.Returns a builder that creates a module that overlays override modules over the given modules.static Module
Returns a module that will configure the injector to require @Inject
on constructors.static Module
Returns a module that will configure the injector to require an exactly matching binding annotation.static Module
Returns a module that will configure the injector to require explicit bindings.
-
Field Details
-
EMPTY_MODULE
-
-
Constructor Details
-
Modules
private Modules()
-
-
Method Details
-
override
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.there's no reason to useModules.override()
without any arguments. -
override
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
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.there's no need to "combine" one module; just install it directly. -
combine
Deprecated.this method call is effectively a no-op, just remove it. -
combine
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. -
extractScanners
-
requireExplicitBindingsModule
Returns a module that will configure the injector to require explicit bindings.- Since:
- 4.2.3
-
requireAtInjectOnConstructorsModule
Returns a module that will configure the injector to require @Inject
on constructors.- Since:
- 4.2.3
- See Also:
-
requireExactBindingAnnotationsModule
Returns a module that will configure the injector to require an exactly matching binding annotation.- Since:
- 4.2.3
- See Also:
-
disableCircularProxiesModule
Returns a module that will configure the injector to disable circular proxies.- Since:
- 4.2.3
-