【问题标题】:Injecting services into Scala Akka Actors with Google Guice使用 Google Guice 将服务注入 Scala Akka Actors
【发布时间】:2015-07-31 20:54:12
【问题描述】:

我有一些服务想要注入到 akka actor 中。我正在使用三种不同类型的演员,每种类型将使用不同的服务。目前我只有一个模块,在actor内部实例化一个注入器,并在每个 Crow 内部进行绑定。问题是,对于彼此来说,他们会收到一个新的服务实例。

我做了一点阅读,发现http://www.typesafe.com/activator/template/activator-akka-scala-guice 但是akka 的文档建议我们不要使用IndirectActorProducer。将这些服务注入演员的最佳方式是什么? @Inject 关键字看起来很有希望,但我不确定如何使用它。

工作流程:

Main 创建指挥官,向其发送命令,指挥官创建三种不同类型的乌鸦,并向它们发送消息以执行(正是这些乌鸦需要服务)。

【问题讨论】:

    标签: scala dependency-injection akka guice


    【解决方案1】:

    在您的模块中,使用@Provides 方法接受服务作为参数并返回 ActorRefs。在这些提供者方法中,您从注入的服务中实例化 Props,但让 akka 实际创建 actor,因此您不需要子注入器。

    例如,请参阅我对https://stackoverflow.com/a/30901808/1341546 的回答。

    【讨论】:

      【解决方案2】:

      我最终使用http://www.typesafe.com/activator/template/activator-akka-scala-guice 作为指导。我发现它工作得很好,它实际上并没有使用 IndirectActorProducer 而是另一个扩展它的类,这也是他们推荐的。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 2016-09-04
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      相关资源
      最近更新 更多