【问题标题】:Scala: Write value to typesafe config objectScala:将值写入类型安全配置对象
【发布时间】:2014-06-11 02:10:02
【问题描述】:

我正在使用 Typesafe 配置并在我的资源目录中有一个配置文件,如下所示:

something {
  another {
    someconfig=abc
    anotherconfig=123
  }
}

如何使用 scala 更改 anotherconfig 的值?

【问题讨论】:

    标签: scala typesafe-config hocon


    【解决方案1】:

    如果你想改变加载的配置(即在旧配置的基础上创建一个新配置),你可以使用 withValue:

    val newConfig = oldConfig.withValue("something.another.anotherconfig",
      ConfigValueFactory.fromAnyRef(456))
    

    【讨论】:

      【解决方案2】:

      您不能覆盖原始 Config 对象中的值,因为它是不可变的。您可以做的是使用您的值创建一个新的 Config 对象,使用原始值作为后备。所以:

      val myConfig = ConfigFactory.parseString("something.another.anotherconfig=456")
      val newConfig = myConfig.withFallback(oldConfig)
      

      然后在任何地方都使用 newConfig 而不是原来的 Config。一个更易于维护的选项是使用您的更改和使用第二个配置文件:

      val myConfig = ConfigFactory.load("local")
      val oldConfig = ConfigFactory.load
      val realConfig = myConfig.withFallback(oldConfig)
      

      然后您可以使用系统属性来设置从哪里加载myConfig

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-01
        • 2020-05-03
        • 2014-04-27
        • 1970-01-01
        • 2020-05-23
        • 1970-01-01
        相关资源
        最近更新 更多