Compile-time dependency injection in the Play framework
Play introduced Dependency Injection (DI) in version 2.4 to reduce global state, and make it easier to write isolated, reusable, and testable code by instantiating components on each reload and by providing stop hooks. In this article, Marius Soutier explains what compile-time dependency injection in the Play framework is all about.