![](/img/trans.png)
[英]How to use system properties to substitute placeholders in Typesafe Config file?
[英]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.conf
你application.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.