2014-09-02 51 views
2

在akka中,如果在actor中,通过system.settings.config读取全局配置很容易。Akka:如何从非演员对象中读取配置

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

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

感谢

莱昂

+2

如果你有到'ActorSystem'本身的引用,那么它为'system.settings.config'容易(假设裁判被称为'system') 。如果你没有对'ActorSystem'的引用,那么不知道你能做什么。 – cmbaxter 2014-09-02 16:04:37

回答

1

正如cmbaxter说,如果你有演员系统的引用,使用,如果你不这样做,那么,也许你可以改变你的代码,以便您将有对它的引用。如果这是不可能的,那么你可以使用configFactory读取配置,并把它放在你的单身人员可以访问的地方,并且在你创建时使用该配置作为参数,而不是让它从磁盘读取配置。

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) 
+1

实际上,它是一个完全独立的零依赖库:https://github.com/typesafehub/config – 2014-09-08 19:45:03