Package play.inject

Class Module

java.lang.Object
play.api.inject.Module
play.inject.Module
Direct Known Subclasses:
AhcWSModule, BuiltInModule, DBModule, FormattersModule, FormFactoryModule, JPAModule, OpenIdModule, ValidatorsModule

public abstract class Module extends play.api.inject.Module
A Play dependency injection module.

Dependency injection modules can be used by Play plugins to provide bindings for JSR-330 compliant ApplicationLoaders. Any plugin that wants to provide components that a Play application can use may implement one of these.

Providing custom modules can be done by appending their fully qualified class names to `play.modules.enabled` in `application.conf`, for example

 
 play.modules.enabled += "com.example.FooModule"
 play.modules.enabled += "com.example.BarModule"
  
It is strongly advised that in addition to providing a module for JSR-330 DI, that plugins also provide a Scala trait that constructs the modules manually. This allows for use of the module without needing a runtime dependency injection provider.

The `bind` methods are provided only as a DSL for specifying bindings. For example:

 
 @Override
 public List<Binding<?>> bindings(Environment environment, Config config) {
     return Arrays.asList(
         bindClass(Foo.class).to(FooImpl.class),
         bindClass(Bar.class).to(() -> new Bar()),
         bindClass(Foo.class).qualifiedWith(SomeQualifier.class).to(OtherFoo.class)
     );
 }
  
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> BindingKey<T>
    bindClass(Class<T> clazz)
    Create a binding key for the given class.
    final scala.collection.immutable.Seq<play.api.inject.Binding<?>>
    bindings(play.api.Environment environment, play.api.Configuration configuration)
     
    abstract List<Binding<?>>
    bindings(Environment environment, com.typesafe.config.Config config)
     

    Methods inherited from class play.api.inject.Module

    bind, bind, seq, seq

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Module

      public Module()
  • Method Details

    • bindings

      public abstract List<Binding<?>> bindings(Environment environment, com.typesafe.config.Config config)
    • bindings

      public final scala.collection.immutable.Seq<play.api.inject.Binding<?>> bindings(play.api.Environment environment, play.api.Configuration configuration)
      Specified by:
      bindings in class play.api.inject.Module
    • bindClass

      public static <T> BindingKey<T> bindClass(Class<T> clazz)
      Create a binding key for the given class.