When defining Scala controller it to mark a class as singleton use the @Singleton annotation :
@Singleton
class Application
https://docs.oracle.com/javaee/7/api/javax/inject/Singleton.html defines singleton as 'Identifies a type that the injector only instantiates once. Not inherited.' so is Scala play dependency injection framework relying on Java dependency injection ?
From https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection 'Play supports both runtime dependency injection based on JSR 330 (described in this page) and compile time dependency injection in Scala.' Is using @Singleton utilizing 'dependency injection based on JSR 330' so to use 'compile time dependency injection in Scala' what is required ?