急切地初始化scalaguice中的singleton actor
我想急切地初始化一个单身演员。我目前正在做下面的工作,然后在我的应用程序启动中获取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() 但在
`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{
}