tutorial mvc mediante libro framework español desarrollo books arquitectura aplicaciones scala playframework dependency-injection playframework-2.0

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?