2016-04-29 4 views
1

Ich benutze Scala Play Framework 2.5 und ich würde Dependency Injection verwenden, um eine Instanz von WSClient in meine benutzerdefinierte Klasse zu injizieren, aber ich bekomme immer den folgenden Fehler.Scalaws in play Framework 2.5 und Abhängigkeitsinjektion von WSClient in benutzerdefinierte Klasse

not enough arguments for constructor TestClass: (ws: play.api.libs.ws.WSClient)service.TestClass. Unspecified value parameter ws. 

erhalte ich die Fehlermeldung, wenn Sie den folgenden Code ausgeführt wird

class TestClass @Inject() (ws: WSClient) { 
    def doSomething() : Future[WSResponse] = { 
    ws.url("http://www.google.com").get() 
    } 
} 

val test = new TestClass() 
val f = test.doSomething() 
val result = Await.result(f, Duration.Inf) 

println("doSomething: " + result) 

Kann mir jemand helfen, dieses Problem zu versuchen, lösen eine WSClient Abhängigkeit in einer benutzerdefinierten Klasse zu injizieren?

Sie im Voraus deinnkening

Francis

Antwort

3

diese Zeile:

val test = new TestClass() 

Es ist die Dependency Injection Unterstützung von Spielen zur Verfügung gestellt nicht verwenden. Sie sind manuell Erstellen der Instanz TestClass. Ich empfehle wirklich, dass Sie die folgenden doc Seite zu lesen:

PlayFramework: Scala Dependency Injection

Grundsätzlich, wenn Laufzeit Dependency Injection verwenden, können Sie nicht die Instanzen manuell erstellen. Sie lassen das DI-Framework die Arbeit für Sie erledigen. Wenn Sie jedoch stattdessen an der Kompilierungszeitabhängigkeitsinjektion interessiert sind, lesen Sie die folgende Seite:

PlayFramework: Compile Time Dependency Injection