我正在探索适用于 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 的范围内?
或者也许我应该使用不同的方法?
谢谢!