0
我需要訪問Play Framework 2.5在我的Module
類中使用的默認actor系統。如何從模塊中訪問Play 2.5中使用的actor系統
我看到有上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類中構建,所以我需要這個actor系統來創建這個actor並且構建這個map,並且我有一個在contstructor /道具方法。所以我創建了具有與函數簽名匹配的方法的類,但只將函數傳遞給actor的props方法。這在Module類中很容易完成,但需要演員系統。 –
這將意味着你不得不在你的模塊中啓動演員,這當然不是主意。一個模塊基本上是對代碼中的綁定的描述(其他人使用XML)。這並不意味着包含這樣的代碼。我會盡力去做別的。也許某種類型的工廠(甚至是'javax.inject.Provider')需要一個'ActorSystem'併產生這個'Map [String,ActorRef]'? – rethab