【问题标题】:Typesafe config file in home directory主目录中的类型安全配置文件
【发布时间】:2015-07-22 18:05:10
【问题描述】:

根据我的阅读,类型安全配置库从类路径或系统变量中读取。这对我来说不是很好,因为在命令行上传递许多参数是不可行的,我不希望我们的 devops 团队不得不重建 jar 来更改设置。他们也不太乐意设置大量的环境变量。

是否可以指定一个不在类路径上的外部文件,类似于 Spring 的工作方式?

理想情况下,我会先查看 ~/.ourapp.conf 文件,然后查找环境变量,最后回退到 application.conf 和 reference.conf。

【问题讨论】:

    标签: scala home-directory typesafe-config


    【解决方案1】:

    除了指定一个命令行参数的形式:-Dconfig.file=,你可以在代码中使用类似这样的东西:

    val defaults = ConfigFactory.load()
    val file = new File("~/path/custom.config")
    // I'm not sure what you mean with environment variables, 
    // but you could read environment variables into a map and then use 
    val env = ConfigFactory.parseMap(envMap)
    val settings = ConfigFactory.parseFile(file).withFallBack(env).withFallBack(defaults)
    

    【讨论】:

    • 谢谢,这正是我想要的
    【解决方案2】:

    您可以根据https://www.playframework.com/documentation/2.0/ProductionConfiguration在命令行上指定-Dconfig.file=~/.ourapp.conf

    【讨论】:

    • 完美,我将对此进行测试,看看它是否适用于其他基于类型安全配置的应用程序(我们现在正在构建一个 spray/akka 应用程序)
    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2018-10-31
    • 2017-12-09
    相关资源
    最近更新 更多