scala - 从属性文件中读取属性
问题描述
我有一个从“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...
}
解决方案
您可以使用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])
推荐阅读
- javascript - Node,js sequelize.js:如何使用默认值自动增加主键
- javascript - Angular Promise 未解决
- spring-boot - Spring Boot:我应该如何部署我的微服务
- python - 为字典中的特定键列表添加值
- python - 查找包含给定文本的未知标签
- image-processing - Detectron2 测量碳纤维的宽度?
- flutter - Flutter - 冻结包 - 如何正确组合类
- arrays - 从字典对象的键向 vbscript 中的动态数组添加值
- database - 应用程序启动时,Mnesia disc_copies 表如何存储在 ram 中?
- github - GitHub 桌面 - 如何将项目添加到存储库或分支?