Scala Akka:如何从非参与者对象中读取配置

Scala Akka:如何从非参与者对象中读取配置,scala,akka,config,Scala,Akka,Config,在akka中,如果在actor中,则可以通过system.settings.config轻松读取全局配置 但是,如果我有一个普通的单例对象需要从actorSystem读取配置,我应该怎么做 假设我不想再次使用configFactory执行相同的配置文件解析/回退 谢谢 Leon正如cmbaxter所说,如果你有对actor系统的引用,那么就使用它,如果你没有,那么,也许你可以修改你的代码,这样你就有了对它的引用。如果这是不可能的,那么您可以使用configFactory读取配置,并将其放在您的s

在akka中,如果在actor中,则可以通过system.settings.config轻松读取全局配置

但是,如果我有一个普通的单例对象需要从actorSystem读取配置,我应该怎么做

假设我不想再次使用configFactory执行相同的配置文件解析/回退

谢谢


Leon

正如cmbaxter所说,如果你有对actor系统的引用,那么就使用它,如果你没有,那么,也许你可以修改你的代码,这样你就有了对它的引用。如果这是不可能的,那么您可以使用configFactory读取配置,并将其放在您的singleton可以访问的地方,并且在创建actor系统时将该配置用作actor系统的参数,而不是让它从磁盘读取配置

object MyConfig {
  private val myConfig = ??? // however you want to load your config
  private val regularConfig = ConfigFactory.load();

  // now you can access it from anywhere you want
  val config = myConfig.withFallback(regularConfig);
}
其他地方:

val system = ActorSystem("my-system", MyConfig.config)

如果您有一个对
ActorSystem
本身的引用,那么它与
system.settings.config
一样简单(假设该引用名为
system
)。如果您没有对ActorSystem的引用,则不确定您能做什么。事实上,它是一个完全独立的零相关性库: