我想通過DI將兩個演員注入到Play控制器中。注入一個演員的作品絕對沒問題,我可以發送消息給這個演員沒有任何問題。然而,注射第二男主角和發送消息時,我得到以下編譯錯誤:將兩個演員注入到播放控制器時出現'模糊隱含值'
play.sbt.PlayExceptions$CompilationException: Compilation error[ambiguous implicit values:
both value fooSupervisor in class MyController of type akka.actor.ActorRef
and value barSupervisor in class MyController of type akka.actor.ActorRef
match expected type akka.actor.ActorRef]
我的控制器看起來是這樣的:
class MyController @Inject()(
implicit system: ActorSystem,
materializer: Materializer,
@Named("FooSupervisor") fooSupervisor: ActorRef,
@Named("BarSupervisor") barSupervisor: ActorRef
) extends Controller {
}
和模塊如下所示:
class Module extends AbstractModule with ScalaModule with AkkaGuiceSupport {
def configure() {
// ....
bindActor[FooSupervisor]("FooSupervisor")
bindActor[BarSupervisor]("BarSupervisor")
()
}
}
我該如何解決這個問題?
fyi - 我用guice 4.1.0來測試上面的代碼。 – Prashanth