playframework 注入播放类

示例

您经常需要从框架本身(例如WSClient或Configuration)访问类的实例。您可以将它们注入自己的课程中:

class ComplexService @Inject()(
  configuration: Configuration,
  wsClient: WSClient,
  applicationLifecycle: ApplicationLifecycle,
  cacheApi: CacheApi,
  actorSystem: ActorSystem,
  executionContext: ExecutionContext
  ) {
  // 实施在这里
  // 您可以使用所有注入的类:
  //
  // 配置以读取您的.conf文件
  // wsClient发出HTTP请求
  // 应用程序生命周期注册在应用程序关闭时要做的事情
  // cacheApi使用缓存系统
  // 使用AKKA的actorSystem
  // 与期货一起使用的executionContext
}

如果将某些内容(例如ExecutionContext)作为隐式导入,则可能更易于使用。只需将它们添加到构造函数的第二个参数列表中:

class ComplexService @Inject()(
  configuration: Configuration,
  wsClient: WSClient
  )(implicit executionContext: ExecutionContext) {
  // 实施在这里
  // 您仍然可以使用注入的类
  // 和executionContext作为整个类的隐式参数导入
}