2017-08-30 1 views
0

Ich benutze myConfig.root().render(ConfigRenderOptions.concise().setFormatted(true))) print meine Konfiguration content.But ich finde es enthält viele andere Informationen, wie "version" : "2.4.16", "stdout-loglevel" : "WARNING", etc, die nicht in meiner Konfigurationsdatei definiert ist.
Woher kommen die Informationen?
Wie kann ich nur den Inhalt meiner Konfigurationsdatei drucken?wie man typesafe config bibliothek nur rendert Dateiinhalt?

Antwort

0

Sie verwenden wahrscheinlich Akka 2.4.16 (direkt oder indirekt). In diesem Fall werden die Konfigurationseinstellungen "extra" von der reference.conf übernommen, wie in der documentation beschrieben. Die reference.conf enthält alle Standardkonfigurationseinstellungen und Ihre application.conf kann alle diese Einstellungen überschreiben.

Die ActorSystem verbindet die reference.conf mit Ihrer application.conf, wie gesehen here. Ich glaube nicht, dass es einen Weg durch die TypeSafe Config API gibt, um den Inhalt von application.conf ohne die zusammengeführten Einstellungen von reference.conf zu rendern.

+0

Dank. Ich erkannte, dass "reference.conf" aus anderen Abhängigkeiten zusammengeführt wird. Ich denke, die Bibliothek sollte die Methode offen legen, die vor dem Zusammenführen und nach dem Zusammenführen von Konfigurationsinhalten gehandhabt wird, aber es scheint sehr komplex zu sein. – LoranceChen

0

Ich benutze einen Weg Config mit parseResourcesAnySyntax Methode durch separate myConfig mit default zu machen:

Config
object DataServiceConfig { 
    val local = ConfigFactory.parseResourcesAnySyntax("local") 
    val online = ConfigFactory.parseResourcesAnySyntax("online") 
    val develop = ConfigFactory.parseResourcesAnySyntax("application") //develop environment 
    val default = ConfigFactory.load("application") //default environment 

    val myConfig = local.withFallback(online).withFallback(develop) 
    val combinedConfig = myConfig.withFallback(default) 

    def printConf(config: Config): Unit = println(config.root().render(ConfigRenderOptions.concise().setFormatted(true).setJson(true))) 


} 

Druck: DataServiceConfig.printConf(DataServiceConfig.myConfig)

Verwandte Themen