如何使用类型安全的配置库只渲染文件内容?
how to use typesafe config library just render file content?
我正在使用 myConfig.root().render(ConfigRenderOptions.concise().setFormatted(true)))
打印我的配置 content.But 我发现它包含许多其他信息,例如未定义的 "version" : "2.4.16"
、"stdout-loglevel" : "WARNING"
等在我的配置文件中。
信息来自哪里?
我怎样才能打印我的配置文件内容?
您可能正在使用 Akka 2.4.16(直接或间接),在这种情况下,"extra" 配置设置是从 reference.conf
, as described in the documentation 中提取的。 reference.conf
包含所有默认配置设置,您的 application.conf
可以覆盖任何这些设置。
ActorSystem
将 reference.conf
与您的 application.conf
合并,如 here 所示。我不认为有一种方法可以通过 Typesafe Config API 来呈现 application.conf
的内容而不包括来自 reference.conf
.
的合并设置
我使用 parseResourcesAnySyntax
方法通过 myConfig
和 default
单独渲染配置:
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)
您可以使用 java.util.Properties
来获取您的文件内容,如下所示:
def getPropByFileName(fileName: String) = {
val inputStream = this.getClass.getClassLoader.getResourceAsStream(fileName)
val props = new Properties()
props.load(inputStream)
props
}
我正在使用 myConfig.root().render(ConfigRenderOptions.concise().setFormatted(true)))
打印我的配置 content.But 我发现它包含许多其他信息,例如未定义的 "version" : "2.4.16"
、"stdout-loglevel" : "WARNING"
等在我的配置文件中。
信息来自哪里?
我怎样才能打印我的配置文件内容?
您可能正在使用 Akka 2.4.16(直接或间接),在这种情况下,"extra" 配置设置是从 reference.conf
, as described in the documentation 中提取的。 reference.conf
包含所有默认配置设置,您的 application.conf
可以覆盖任何这些设置。
ActorSystem
将 reference.conf
与您的 application.conf
合并,如 here 所示。我不认为有一种方法可以通过 Typesafe Config API 来呈现 application.conf
的内容而不包括来自 reference.conf
.
我使用 parseResourcesAnySyntax
方法通过 myConfig
和 default
单独渲染配置:
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)
您可以使用 java.util.Properties
来获取您的文件内容,如下所示:
def getPropByFileName(fileName: String) = {
val inputStream = this.getClass.getClassLoader.getResourceAsStream(fileName)
val props = new Properties()
props.load(inputStream)
props
}