/ / PlayFramework Scala-Abhängigkeit Injection Javax - Scala, Playframework, Playframework-2.5

PlayFramework Scala-Abhängigkeit Injection Javax - scala, playframework, playframework-2.5

Ich bin neu bei Scala und dem PlayFramework und binversuchen herauszufinden, wie ich eine Abhängigkeit Injection machen kann. Ich möchte im Grunde eine Datei, die eine Eigenschaft sein wird, und diese in einen Controller einschleusen. Mein Problem ist, dass meine Controller-Klasse meine Eigenschaft nicht sieht. Dies ist mein Code

ProfileTrait

package traitss

import play.api.mvc._


trait ProfileTrait extends Controller {
def Addone()
}

Dann versuche ich das in meinen Controller zu injizieren

import java.nio.file.{Files, Paths}

import traitss.ProfileTrait_
import play.api.mvc.{Action, Controller}
import javax.inject._

class Profiles @Inject() (profileTrait: ProfileTrait)   extends Controller
{

}

Mein Controller sieht es jedoch nicht, ich versuche hier dem Beispiel zu folgen https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection . Ich verwende die Play Framework Version 2.50

Antworten:

0 für die Antwort № 1

Sie können keine Eigenschaft einfügen, Sie müssen ein Objekt einfügen, das diese Eigenschaft implementiert.

Damit die Abhängigkeitsinjektion funktioniert, müssen Sie dies tunErklären Sie dem Rahmen (Spiel verwendet Guice unter der Haube), wie Sie die Abhängigkeit auflösen, die injiziert werden soll. Es gibt viele Möglichkeiten, dies zu tun, und das hängt von Ihrem Fall ab. Weitere Einzelheiten können Sie sich ansehen Guice-DokumentationDer einfachste Weg im Spiel ist das Erstellen Module.scala in dein app Verzeichnis, wenn es nicht schon da ist, und etwas wie folgt:

import com.google.inject.AbstractModule
class Module extends AbstractModule {
override def configure() = {
bind(classOf[ProfileTrait]).toInstance( ... )
}
}

wo in ... Sie legen die Logik, um das Objekt zu erstellen, das Sie injizieren möchten.