2

我正在探索适用于 Scala 的 Macwire DI 框架,在此过程中遇到了一个问题。

我有一个调度员演员,它创建了一堆依赖于调度员的演员。Dispatcher 控制其子 Actor 之间的所有消息流。

这是我的设置的简要情况:

class WorkerActor(dispatcher: ActorRef) extends Actor {}

class Dispatcher extends Actor {
  private val worker = context.actorOf(Props(
    new WorkerActor(self)
  ))
}

在我的真实项目中,WorkerActor 的依赖项不仅仅是一个“自我”。他们可以很容易地接线。

我试过这样做dispatcher: ActorRef @@ Dispatcher,但它给了我错误:

错误:(47, 9) 找不到类型的值:[akka.actor.ActorRef @@ Dispatcher] 线[WorkerActor]

如果我使用 guice,这将像一个魅力:

bind[AkkaRef] annotatedWith(Names.named("Dispatcher")) toInstance self

问题是:如何将“self”添加到 macwire 的范围内?

或者也许我应该使用不同的方法?

谢谢!

4

0 回答 0