我正在为Scala探索Macwire DI框架,在这样做时我遇到了一个问题。
我有一个调度员actor,它创建了一堆依赖于调度程序的actor。 Dispatcher控制其子actor之间的所有消息流。
以下是我的设置的简要情况:
class WorkerActor(dispatcher: ActorRef) extends Actor {}
class Dispatcher extends Actor {
private val worker = context.actorOf(Props(
new WorkerActor(self)
))
}
在我的真实项目中,WorkerActor比只有一个“self”具有更多的依赖关系。它们可以轻松连接。
我尝试这样做dispatcher: ActorRef @@ Dispatcher
,但它给了我错误:
错误:(47,9)找不到类型的值:[akka.actor.ActorRef @@ 调度] 线[WorkerActor]
如果我使用的是guice,这就像魅力一样:
bind[AkkaRef] annotatedWith(Names.named("Dispatcher")) toInstance self
问题是:如何将“self”添加到macwire的范围?
或许我应该使用不同的方法?
谢谢!