播放Scala依赖项注入:如何使用它

播放Scala依赖项注入:如何使用它,scala,dependency-injection,playframework-2.0,Scala,Dependency Injection,Playframework 2.0,我正在尝试使用Play2.5依赖注入。我有一个调用RESTAPI并解析响应的类 class Client @Inject()(ws:WSClient, baseUrl: string) { def this(ws:WSClient) = this(ws, "<url string>") def getResponse() = {....} .... } 我得到以下警告 不推荐使用包WS中的对象WS:将WSClient注入到 组成部分 我知道我需要注入WS.Client,

我正在尝试使用Play2.5依赖注入。我有一个调用RESTAPI并解析响应的类

class Client @Inject()(ws:WSClient, baseUrl: string) {

  def this(ws:WSClient) = this(ws, "<url string>")
  def getResponse() = {....}
....

}
我得到以下警告

不推荐使用包WS中的对象WS:将WSClient注入到 组成部分

我知道我需要注入WS.Client,而不是显式地将其传递给客户机构造函数。但是我该怎么做呢

==更新===

我不想从控制器注入客户端或WSClient。我的控制器在运行时创建对象和类,我希望这些对象创建客户端对象。当我显式地将WS.client对象传递给客户机对象时,我得到了上述警告

==更新2===

我的应用程序中有一个插件架构。控制器启动操作时。它不知道要执行哪一组插件。有些插件不需要WSClient,有些插件需要WSClient。所以我不想将WSClient注入耦合到我的控制器中。每个插件独立决定是否要调用远程服务。当插件决定调用远程服务时,它应该能够将WSClient注入它想要调用的任何客户端

控制器操作-->确定要执行的插件-->执行插件-->Plugin1(需要调用远程api,创建客户机对象,例如新客户机(WS.client))。这是注入应该发生的地方,而不是控制器

var client = new Client(WS.client)
client.getResponse()