0

我目前正在努力使用 scaldi 进行依赖注入来实现我的 Akka 路由器逻辑。为什么我不能使用 scaldi 绑定到单个 actor 实例,因为我的 actor 是一个路由器,而我只想拥有它的一个实例?我来问这个问题的方式是另一个 stackoverflow entry

我的 scaldi 模块:

class DAOModule extends Module {
  bind toProvider new UserDaoWorker
  binding to new UserDaoRouter
}

这种方式只创建了一个实例,一旦我多次注入我的路由器,它就会从 sender() 方法中获得一个死信actor作为发送者。

当我将绑定更改为...

binding toProvider new UserDaoRouter

...它工作得很好,但每次注入都意味着我的路由器的一个新实例。我对吗?

那么我怎样才能实现只有一个可注入的路由器实例呢?

提前致谢

4

2 回答 2

0

这对我有用:

class DAOModule extends Module {
  binding toProvider new UserDaoWorker
  binding toProvider new UserDaoRouter
  binding identifiedBy 'singletonUserRouter to {
    implicit val system = inject[ActorSystem]
    AkkaInjectable.injectActorRef[UserDaoRouter]
  }
}

然后在我的控制器中:

val userDaoRouter = inject[ActorRef] ('singletonUserRouter)

我希望这对其他人有帮助;)

于 2014-10-16T08:16:15.010 回答
0

可能是这样:将 [UserDaoRouter] 绑定到新的 UserDaoRouter ??

于 2014-10-08T10:33:09.817 回答