如何在Scala中加载默认配置文件?

时间:2018-11-20 22:07:15

标签: scala config typesafe typesafe-config

有两个配置文件beam.confbeam-template.conf。这些配置文件的实现在BeamConfig.scala中进行。在BeamConfig.scala中传递配置的函数是:

def apply(c: com.typesafe.config.Config): BeamConfig = {
  BeamConfig(
    beam = BeamConfig.Beam(
      if (c.hasPathOrNull("beam")) c.getConfig("beam")
      else com.typesafe.config.ConfigFactory.parseString("beam{}")
    ),
    matsim = BeamConfig.Matsim(
      if (c.hasPathOrNull("matsim")) c.getConfig("matsim")
      else com.typesafe.config.ConfigFactory.parseString("matsim{}")
    )
  )
}

所以我想加载beam-template.conf作为默认配置。 我尝试执行此操作的方式如下:

def setConfParams(conf: TypesafeConfig): Unit = {
  val defaultBeamConfig = BeamConfig(ConfigFactory.defaultReference())
  println(defaultBeamConfig.beam.physsim.skipPhysSim)
}

但是它给了我这个错误

  

线程“ main”中的异常com.typesafe.config.ConfigException $ Missing:找不到密钥的配置设置

有什么方法可以通过在beam-template.conf中传递beam-template的实例来加载BeamConfig.scala.

注意:我需要传递beam-template.conf实例而不是其路径。

0 个答案:

没有答案