Scala 如何访问通过guice创建的akka系统?

Scala 如何访问通过guice创建的akka系统?,scala,playframework,guice,playframework-2.4,Scala,Playframework,Guice,Playframework 2.4,因此,我在这里遵循模板: 我已将此代码移植到2.4版的Play应用程序中 现在,我可以创建actor系统,在全局类中创建actor,并将初始消息发送给actors。我还设置了一些途径,试图与某些演员交谈并获得地位,但我无法,因为我无法访问原始的演员系统 我怎样才能做到这一点?我认为在较旧的游戏版本中,我们有getControllerInstance;用于以下情况: /** * Controllers must be resolved through the application c

因此,我在这里遵循模板:

我已将此代码移植到2.4版的Play应用程序中

现在,我可以创建actor系统,在全局类中创建actor,并将初始消息发送给actors。我还设置了一些途径,试图与某些演员交谈并获得地位,但我无法,因为我无法访问原始的演员系统

我怎样才能做到这一点?我认为在较旧的游戏版本中,我们有getControllerInstance;用于以下情况:

  /**
   * Controllers must be resolved through the application context. There is a special method of GlobalSettings
   * that we can override to resolve a given controller. This resolution is required by the Play router.
   */
  override def getControllerInstance[A](controllerClass: Class[A]): A = injector.getInstance(controllerClass)
由此,我们可以在控制器中注入某些依赖项。现在,这已经被删除,我们不能再这样做。有办法解决这个问题吗?

take in to attention@Singleton此处仅存储对actor的引用,而不是ActorSystem

Play应用程序定义了一个特殊的参与者系统,供用户使用 应用此actor系统遵循应用程序生命周期和 应用程序重新启动时自动重新启动


我有点困惑。你为什么要创建一个新的Akka系统?Play已经包含一个,您可以通过
Akka.system()
访问它。
import play.api.mvc._
import akka.actor._
import javax.inject._

import actors.HelloActor

@Singleton
class Application @Inject() (system: ActorSystem) extends Controller {

  val helloActor = system.actorOf(HelloActor.props, "hello-actor")

  //...
}