Class Modules


  • @CheckReturnValue
    public final class Modules
    extends Object
    Static utility methods for creating and working with instances of Module.
    Since:
    2.0
    • 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 single PrivateModule is supplied or all elements are from a single PrivateBinder, 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

        public static Modules.OverriddenModuleBuilder override​(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 single PrivateModule is supplied or all elements are from a single PrivateBinder, 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 of modules.

        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​(Iterable<? extends Module> modules)
        Returns a new module that installs all of modules.

        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