急切地初始化scalaguice中的singleton actor

急切地初始化scalaguice中的singleton actor,scala,akka,guice,Scala,Akka,Guice,我想急切地初始化一个单身演员。我目前正在做下面的工作,然后在我的应用程序启动中获取actor的实例 `bind[Actor].annotatedWith(Names.named(LockCoordinator.name)).to[LockCoordinator].in[Singleton]` 我试过了 bind[Actor].annotatedWith(Names.named(lockordinator.name)).to[lockordinator].asagersingleton() 但在

我想急切地初始化一个单身演员。我目前正在做下面的工作,然后在我的应用程序启动中获取actor的实例

`bind[Actor].annotatedWith(Names.named(LockCoordinator.name)).to[LockCoordinator].in[Singleton]`
我试过了
bind[Actor].annotatedWith(Names.named(lockordinator.name)).to[lockordinator].asagersingleton()

但在运行时失败

1) Error injecting constructor,   akka.actor.ActorInitializationException:   You cannot create an instance of [LockCoordinator] explicitly using the constructor (new). You have to use one of the 'actorOf' factory methods to create a new actor. See the documentation.
我确实已经为系统创建了一个Singleton,但不知道如何将它应用于一个Actor(而不是ActorRef)

有没有一种无样板的方法来实现这一点?当我想将此应用于3-4名其他演员时,这有帮助吗

在这里,我们按名字注入演员

class SampleController @Inject()(implicit system: ActorSystem, val messagesApi: MessagesApi, @Named("actor-browser-actor") actorBrowserActor: ActorRef)
  extends Controller  with I18nSupport{
}
或者你可以试试
import actors.ActorBrowserActor
import com.google.inject.AbstractModule
import play.api.libs.concurrent.AkkaGuiceSupport

class Module extends AbstractModule with AkkaGuiceSupport{
  def configure(): Unit = {
    bindActor[ActorBrowserActor](ActorBrowserActor.NAME, _=>ActorBrowserActor.props)
  }
}
class SampleController @Inject()(implicit system: ActorSystem, val messagesApi: MessagesApi, @Named("actor-browser-actor") actorBrowserActor: ActorRef)
  extends Controller  with I18nSupport{
}