mvc - ¿Cómo funciona @Inject en Scala?
spring framework pdf español (1)
Se ve cerca. Cambie val
por var
porque no es definitivo y debe inyectarse en una etapa posterior.
@Inject var mailer: MailerClient = null
Verificaría también que la biblioteca de MailerClient
se menciona como una dependencia en la configuración del proyecto. Podría intentarlo con WSClient
ya que está incluido de manera predeterminada en la plantilla:
@Inject var ws: WSClient = null
Especialmente porque sé que este en particular funciona.
Actualizar
Creó una demostración en GitHub que es la plantilla de Play-Scala
con el método de index
modificado de la siguiente manera:
import play.api._
import play.api.libs.ws.WSClient
import play.api.mvc._
import play.api.libs.concurrent.Execution.Implicits.defaultContext
class Application extends Controller {
@Inject var ws: WSClient = null
def index = Action.async {
ws.url("http://google.com").get.map(r => Ok(r.body))
}
}
Me pregunto cómo funciona la anotación @Inject en Play-Scala. Obviamente inyecta una dependencia, pero tengo curiosidad de cómo funciona. Cuando lo estaba usando en el controlador de extensión de clase y establecí el generador de rutas en el generador de inyectroutes parece que crea automáticamente objetos a partir de esas clases, pero ¿cómo lo uso en otro contexto?
Lo intenté:
@Inject val mailer: MailerClient = null
Pero eso no parece funcionar. ¿Hay alguna posibilidad de @Inject cosas (que mailerClient, WS ets.) Directamente a un valor, no a la clase de controlador?