Use of @Singleton in Scala play framework
<p>When defining Scala controller it to mark a class as singleton use the @Singleton annotation : </p>

<pre><code>@Singleton
class Application
</code></pre>

<p><a href="https://docs.oracle.com/javaee/7/api/javax/inject/Singleton.html" rel="nofollow">https://docs.oracle.com/javaee/7/api/javax/inject/Singleton.html</a> 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 ? </p>

<p>From <a href="https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection" rel="nofollow">https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection</a> '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 ?</p>