ScalaWS在Play框架2.5中以及在自定义类中依赖注入WSClient

时间:2016-04-29 20:22:43

标签: scala playframework-2.5

我正在使用Scala Play framework 2.5,我想使用依赖注入将WSClient实例注入我的自定义类,但我不断收到以下错误。

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

运行以下代码时出现错误

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)

有人可以帮我解决尝试将wsclient依赖项注入自定义类的问题吗?

提前感谢你

弗朗西斯

1 个答案:

答案 0 :(得分:3)

这一行:

val test = new TestClass()

它没有使用Play提供的依赖注入支持。您手动创建TestClass的实例。我真的建议您阅读以下文档页面:

PlayFramework: Scala Dependency Injection

基本上,使用运行时依赖注入时,不要手动创建实例。您让DI框架为您完成工作。但是,如果您对编译时依赖注入感兴趣,请参阅以下页面:

PlayFramework: Compile Time Dependency Injection