2

我不确定我是否缺少一些真正基本的东西,但我不知道如何使用WSClient. 我已经看到所有示例都说您需要将 WSClient 作为依赖项传递给一个类,我已经这样做了,但是当我运行程序时,我实际上传递给我的类的是什么?

例如,我的班级签名是:

class myClassName(ws: WSClient)

但是当我实例化这个类时,我实际上传递给它什么?我也很乐意忽略 Play!框架的东西,如果这使它更容易,只需使用 SBT 来运行它(我更熟悉)。

4

1 回答 1

3

目前尚不清楚您可能在哪里使用 a WSClient但建议您让 Play 框架“管理”客户端实例。当您实例化您的应用程序时,它会被注入:

class Application @Inject() (ws: WSClient) extends Controller {
  ...
}

这意味着...您可以在内部访问ws作为值。您可以使用它进行实例化myClassName

class Application @Inject() (ws: WSClient) extends Controller {
  val myclass = myClassName(ws)  // passes the injected WSClient to myClassName
}

或者您可以编写一个返回 的函数WSClient,以便代码的其他一些区域可以调用您的Application对象以获取它的对象处理程序。

但关键是Application对象因为注入而获得了那个句柄,也就是@Inject注解。

如果您需要WSClient手动生成并管理它,这里有很好的说明。推荐的实现依赖于 Play!框架库,但不依赖于Application.

于 2016-08-24T01:21:13.370 回答