簡體   English   中英

如何使用Typesafe配置庫僅渲染文件內容?

[英]how to use typesafe config library just render file content?

我使用myConfig.root().render(ConfigRenderOptions.concise().setFormatted(true)))打印我的配置內容。但是我發現它包含許多其他信息,例如"version" : "2.4.16""stdout-loglevel" : "WARNING"等,在我的配置文件中未定義。
信息從哪里來?
我怎樣才能打印我的配置文件內容?

我使用一種方法通過parseResourcesAnySyntax方法通過default的單獨myConfig來呈現配置:

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


}

打印配置: DataServiceConfig.printConf(DataServiceConfig.myConfig)

您可能正在使用Akka 2.4.16(直接或間接),在這種情況下,“額外”配置設置是從reference.conf中提取的,如文檔中所述。 reference.conf包含所有默認配置設置,而您的application.conf可以覆蓋任何這些設置。

ActorSystem融合了reference.confapplication.conf ,因為看到這里 我不認為沒有通過reference.conf合並的設置就無法通過Typesafe Config API呈現application.conf的內容。

您可以使用java.util.Properties來獲取文件內容,如下所示:

def getPropByFileName(fileName: String) = {
    val inputStream = this.getClass.getClassLoader.getResourceAsStream(fileName)
    val props = new Properties()
    props.load(inputStream)
    props
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM