我目前正在努力实现我的Akka路由器逻辑,使用烫伤进行依赖注入。既然我的actor是一个路由器,我只想拥有它的一个实例,为什么我不能用滚烫绑定到一个actor实例?我问这个问题的方式是另一个stackoverflow条目。
我的烫伤模块:
class DAOModule extends Module {
bind toProvider new UserDaoWorker
binding to new UserDaoRouter
}
这样只创建了一个实例,一旦我多次注入路由器,它就会从sender()方法中得到一个死信参与者作为发送方。
当我将绑定更改为…时
binding toProvider new UserDaoRouter
它工作得很好,但每次注入都意味着我的路由器有了一个新实例。我说得对吗?
那么,我如何才能实现只有一个可注入的路由器实例呢?
提前感谢
可能是这样的:将[UserDaoRouter]绑定到新的UserDaoRouter??
这就是我的工作原理:
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)
我希望这能帮助其他人;)