1

我正在使用 Scala Play 框架 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 依赖项注入自定义类的问题吗?

提前谢谢你

弗朗西斯

4

1 回答 1

3

这一行:

val test = new TestClass()

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

PlayFramework:Scala 依赖注入

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

PlayFramework:编译时间依赖注入

于 2016-04-29T22:02:40.827 回答