abstract class Module extends AnyRef
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:
def bindings(env: Environment, conf: Configuration) = Seq( bind[Foo].to[FooImpl], bind[Bar].to(new Bar()), bind[Foo].qualifiedWith[SomeQualifier].to[OtherFoo] )
- Source
- Module.scala
- Alphabetic
- By Inheritance
- Module
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Module()
Abstract Value Members
- abstract def bindings(environment: Environment, configuration: Configuration): Seq[Binding[_]]
Get the bindings provided by this module.
Get the bindings provided by this module.
Implementations are strongly encouraged to do *nothing* in this method other than provide bindings. Startup should be handled in the constructors and/or providers bound in the returned bindings. Dependencies on other modules or components should be expressed through constructor arguments.
The configuration and environment a provided for the purpose of producing dynamic bindings, for example, if what gets bound depends on some configuration, this may be read to control that.
- environment
The environment
- configuration
The configuration
- returns
A sequence of bindings
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def bind[T](implicit arg0: ClassTag[T]): BindingKey[T]
Create a binding key for the given class.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- final def bind[T](clazz: Class[T]): BindingKey[T]
Create a binding key for the given class.
Create a binding key for the given class.
- Annotations
- @deprecated
- Deprecated
(Since version 2.7.0) Use play.inject.Module.bindClass instead if the Module is coded in Java. Scala modules can use play.api.inject.bind[T: ClassTag]
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- final def seq(bindings: Binding[_]*): Seq[Binding[_]]
Create a seq.
Create a seq.
For Java compatibility.
- Annotations
- @deprecated @varargs()
- Deprecated
(Since version 2.7.0) Use play.inject.Module instead if the Module is coded in Java.