Loads an application. This is responsible for instantiating an application given a context.
Application loaders are expected to instantiate all parts of an application, wiring everything together. They may
be manually implemented, if compile time wiring is preferred, or core/third party implementations may be used, for
example that provide a runtime dependency injection framework.
During dev mode, an ApplicationLoader will be instantiated once, and called once, each time the application is
reloaded. In prod mode, the ApplicationLoader will be instantiated and called once when the application is started.
Out of the box Play provides a Java and Scala default implementation based on Guice. The Scala implementation is the
A custom application loader can be configured using the application.loader configuration property.
Implementations must define a no-arg constructor.
Load an application given the context.