I'm wondering how does @Inject annotation in Play-Scala works. It obviously injects a dependency, but I'm curious how is it working. When I was using it on class extending controller and set routes generator to injectroutesgenerator it seems to autmagically create objects from those classes, but how do I use it in other context?
I tried:
@Inject val mailer: MailerClient = null
But that doesn't seem to work. Are there any posibilities to @Inject things (that mailerClient, WS ets.) directly to a value, not to controller class?
Looks close. Change
val
tovar
because it is not final and needs to be injected at a latter stage.I'd check also that the
MailerClient
library is mentioned as a dependency in the project configuration. You could try withWSClient
instead as it's included by default in the template:Especially as I know that this particular one works.
Update
Created a demo on GitHub which is the
Play-Scala
template with theindex
method changed as follows: