В Play 2.2 я создал класс GlobalActorProducer
import akka.actor.{Props, IndirectActorProducer, Actor}
import play.api.Play
class GlobalActorProducer[T <: Actor](val aClass: Class[T]) extends IndirectActorProducer {
def produce(): T = Play.current.global.getControllerInstance(aClass)
def actorClass: Class[T] = aClass
}
object GlobalActorProducer {
def apply[T <: Actor](targetClass: Class[T]): Props = Props.create(classOf[GlobalActorProducer[T]], targetClass)
}
Я хочу обновить Play Framework до 2.5.Play.current устарела в play 2.5, поэтому я изменил этот класс с помощью Injector, но инжектор всегда равен Null.Как мне заставить этот класс работать в игре 2.5?
import akka.actor.{Props, IndirectActorProducer, Actor}
import javax.inject.Inject
import com.google.inject.Injector
class GlobalActorProducer[T <: Actor](val aClass: Class[T]) extends IndirectActorProducer {
@Inject private var injector : Injector = _
def produce(): T = injector.getInstance(aClass)
def actorClass: Class[T] = aClass
}
object GlobalActorProducer {
def apply[T <: Actor](targetClass: Class[T]): Props = Props.create(classOf[GlobalActorProducer[T]], targetClass)
}