Application lifecycle register.
A binding.
A binding key.
A binding target that is provided by another key - essentially an alias.
A binding target.
The Play BuiltinModule.
A binding target that is provided by a class.
Default implementation of the application lifecycle.
An injector, capable of providing components.
A Play dependency injection module.
A binding target that is provided by a provider class.
A binding target that is provided by a provider instance.
A qualifier annotation.
A qualifier annotation class.
A qualifier annotation instance.
A simple map backed injector.
Constructor for a binding Key that doesn't have a qualifier.
Locates and loads modules from the Play environment.
An injector that simply creates a new instance of the passed in classes using the classes no-arg constructor.
Create a binding key for the given class.
Create a binding key for the given class.
The Module class for information on how to provide bindings.
Create a binding key for the given class.
Create a binding key for the given class.
The Module class for information on how to provide bindings.
Play's runtime dependency injection abstraction.
Play's runtime dependency injection support is built on JSR-330, which provides a specification for declaring how dependencies get wired to components. JSR-330 however does not address how components are provided to or located by a DI container. Play's API seeks to address this in a DI container agnostic way.
The reason for providing this abstraction is so that Play, the modules it provides, and third party modules can all express their bindings in a way that is not specific to any one DI container.
Components are bound in the DI container. Each binding is identified by a BindingKey, which is typically an interface that the component implements, and may be optionally qualified by a JSR-330 qualifier annotation. A binding key is bound to a BindingTarget, which describes how the implementation of the interface that the binding key represents is constructed or provided. Bindings may also be scoped using JSR-330 scope annotations.
Bindings are provided by instances of Module.
Out of the box, Play provides an implementation of this abstraction using Guice.
The Module class for information on how to provide bindings.