我不确定我是否遗漏了一些非常基本的内容,但我无法弄清楚如何使用WSClient
。我已经看到所有的例子都说你需要将WSClient作为依赖项传递给一个类,我已经完成了,但是当我运行程序时,我实际上将什么传递给我的类?
例如,我的班级签名是:
class myClassName(ws: WSClient)
但是当我实例化该类时,我实际传递给它的是什么?我也很高兴忽略了Play!框架的东西,如果这使它更容易,只需使用SBT运行它(我更熟悉)。
答案 0 :(得分:3)
目前还不清楚你可能在哪里使用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
并手动管理,则有good instructions here。建议的实施依赖于Play!框架库,但不依赖于Application
。