【问题标题】:Typesafe config: Load additional config from path external to packaged scala application类型安全配置:从打包的 scala 应用程序的外部路径加载附加配置
【发布时间】:2013-08-14 06:26:36
【问题描述】:

我的 scala 应用程序将被打包到一个 jar 中。当我运行我的应用程序时,它需要读取存储在我的应用程序 jar 外部的附加配置文件。我正在寻找类似于 Typesafe Config 库的功能,但也欢迎其他解决方案!有没有办法做如下的事情:

val hdfsConfig = ConfigFactory.load("my_path/hdfs.conf")

【问题讨论】:

    标签: scala configuration app-config config typesafe-stack


    【解决方案1】:

    我想你想要的是:

    val myCfg =  ConfigFactory.parseFile(new File("my_path/hdfs.conf"))
    

    【讨论】:

    • 这不会在配置中包含reference.conf;规范的方法是将parseFile 的结果夹在默认参考配置和默认覆盖之间,这看起来像val fileConfig = parseFile(); val myConfig = ConfigFactory.load(fileConfig)
    • 这是什么File 类? java.io.Filescala.reflect.io.File?
    • @EduardoBezerra,即java.io.File
    • 如果我们在 parseFile() 的参数中包含其他 conf 文件,也可以读取吗?
    • @WeiLin,我不确定我明白你的意思。您能更清楚地了解您要做什么吗?
    【解决方案2】:

    如果您的外部配置是从标准位置添加或覆盖配置参数,您可以执行以下操作:

    val baseConfig = ConfigFactory.load()
    val config = ConfigFactory.parseFile(yourFile).withFallback(baseConfig)
    

    其中yourFilejava.io.File 文档参考here

    【讨论】:

      【解决方案3】:
      val config = ConfigFactory.load("pathtoFile/FileName.propertes") 
      

      也可以。

      【讨论】:

      • 我相信只有当文件在类路径上时才有效。
      • 确实,这个答案和这个question更相关
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      相关资源
      最近更新 更多