0
내 Module
클래스 내에서 Play Framework 2.5가 사용하는 기본 배우 시스템에 액세스해야합니다.모듈 내에서 Play 2.5에 사용 된 액터 시스템에 액세스하는 방법
나는이를 얻을 수 ActorSystemProvider
의 방법이 있음을 참조하십시오
@Singleton
class ActorSystemProvider @Inject()(environment: Environment, configuration: Configuration, applicationLifecycle: ApplicationLifecycle) extends Provider[ActorSystem] {
private val logger = Logger(classOf[ActorSystemProvider])
lazy val get: ActorSystem = {
val (system, stopHook) = ActorSystemProvider.start(environment.classLoader, configuration)
applicationLifecycle.addStopHook(stopHook)
system
}
}
하지만 어떻게 내가 내 Module
클래스이 클래스에 대한 액세스 권한을받을 수 있나요? 예를 들어
:
class Module extends AbstractModule {
val playSystem: ActorSytem = ???
...
}
무엇이 필요합니까? – rethab
Map [String, ActorRef]이 필요하고 Module 클래스에 내장 될 서비스 객체가 있으므로 배우를 만들고지도를 작성하려면 배우 시스템이 필요합니다. 그리고 contstructor/소품 방법. 그래서 함수 시그니처와 일치하는 메서드를 가지고 있지만 액터의 props 메서드에만 함수를 전달하는 클래스를 만듭니다. 이것은 Module 클래스에서 매우 쉽게 이루어 지지만 배우 시스템이 필요합니다. –
그렇다면 모듈에서 배우를 시작해야한다는 것을 의미합니다. 이는 분명히 아이디어가 아닙니다. 모듈은 기본적으로 코드에서의 바인딩에 대한 설명입니다 (다른 것들은 XML로합니다). 이것은 그러한 코드를 포함하기위한 것이 아닙니다. 나는 어떻게 든 그것을하려고 노력할 것이다. 아마'ActorSystem'을 받아서이'Map [String, ActorRef]'를 생성하는 어떤 타입의 팩토리 (또는 심지어'javax.inject.Provider')일까요? – rethab