Scala 如何使用guice将参数注入akka RoundRobinPool的routee

Scala 如何使用guice将参数注入akka RoundRobinPool的routee,scala,playframework,dependency-injection,akka,guice,Scala,Playframework,Dependency Injection,Akka,Guice,我正在使用Play框架、Akka和Guice。需要简单地将一些服务(或另一个参与者)注入到由路由器创建的参与者中,路由器被注入到某个控制器中 我有一个路由器配置: akka.actor.deployment { /job-router { router = "round-robin-pool" nr-of-instances = 10 } } 和一个模块来绑定这个路由器 class ComponentModule extends AbstractModule with

我正在使用Play框架、Akka和Guice。需要简单地将一些服务(或另一个参与者)注入到由路由器创建的参与者中,路由器被注入到某个控制器中

我有一个路由器配置:

akka.actor.deployment {
  /job-router {
    router = "round-robin-pool"
    nr-of-instances = 10
  }
}
和一个模块来绑定这个路由器

class ComponentModule extends AbstractModule with AkkaGuiceSupport {

  def configure() ={
    bindActor[JobActor]("job-router",(p: Props) => FromConfig.props(JobActor.props))
  }
}
还有演员,注入了另一个路由器

class JobActor @Inject() (@Named("b-router")bRouter: ActorRef)  extends Actor {
  def this() = {
    this(null)
  }
  override def receive = {
    case SayHello(name: String) => {
      println(bRouter)
      sender() ! "hello,"+name
    }
  }
}

object JobActor {
  def props = Props[JobActor].withDispatcher("akka.actor.default-dispatcher")
}
但是没有注入
b-router
,而是调用了不带参数的构造函数,因此我不能简单地将
b-router
放入RoundRobinPool的routee中

我确实理解儿童演员(比如
演员[akka://application/user/job-router/$a#-22311049]
)不是由Guice直接注入的,只是想知道是否有一种简化的方法来实现这一点

由于实际routee
作业路由器/$a#-22311049
是RoundRobinPool的子对象,我实现RoundRobinPool注入并传递给routee是否是最佳实践

更新: 这将完成注入演员的工作:

context.actorSelection("akka://application/user/b-router")
关于Guice注入的其他服务

更新2: 通过注入另一个“顶级”参与者(
dao提供程序参与者
)临时解决:

lazy val dao=Await.result((context.actorSelection("/user/dao-provider-actor") ? GetXDao).mapTo[XDAO],10.milliseconds)