我有一个对外部供应商进行 API 调用的客户端类。在我的控制器中,我按如下方式注入客户端。
@Singleton
class AdsController @Inject()(client: MyClient)(
implicit ec: ExecutionContext
) extends InjectedController {
def index = Action.async(json.parse[ClientRequest]) {
client.send(request.body).map({
case s: SuccessResponse => Ok(Json.toJson(s))
...
})
}
}
客户端类如下所示
class MyClient @Inject()(ws: WSClient, appConfig: Configuration)
(implicit ec: ExecutionContext) {...}
我想了解两件事
- 注入器是否为每个请求注入一个新的 MyClient 实例?
- 如果是,注入器是否每次都注入一个新的 WSClient 和 Configuration 实例?
如果两者都是肯定的,那么注入配置会不必要地创建新实例,这不是一个好主意。