首页 > 解决方案 > 从属性文件中读取属性

问题描述

我有一个从“conf.property”文件加载属性的代码。是否有更好的选择来加载所有属性并将它们存储在例如地图中?当前的方法强制为每个附加属性添加一行代码。

import java.io.File

object SomeObject {

  // path to the property file
  val path = "/src/main/resources/conf.properties"

  // load configuration from file
  val conf = ConfigFactory.parseFile(new File(path))


  // get properties
  val prDataPath = conf.getString("dataPath")
  val prContainsHeader = conf.getBoolean("containsHeader").toString
  val prMaxRows: Option[Int]  = Try(conf.getInt("maxRows")).toOption

  // more config variables here...

}

标签: scala

解决方案


您可以使用PureConfig

您的application.conf

prop1 = "hello"
prop2 = "okidoki"

如果像您的示例中那样加载,则应该可以正常工作(我尚未测试):

import pureconfig.generic.auto._

loadConfig[Map[String, String](conf) 

您还可以创建一个case class代表您的配置的。

你的例子:

case class MyConfig(dataPath: String, containsHeader: Boolean, maxRows: Option[Int])

推荐阅读