Scala: нужен совет по лучшему способу получения свойств из файла - PullRequest
0 голосов
/ 31 января 2019

Я хотел бы получить предложения по лучшему подходу к доступу к свойствам файлов в приложении.

Как видно из названия, при использовании scala у меня есть различные конфигурационные файлы с некоторыми свойствами, я хотел бы получить доступ к этим свойствам, используя некоторыетип перечисления (или объекта case) без необходимости запоминания строковых литералов.

Ниже приведена моя текущая реализация, но я чувствую, что это больше, чем нужно, из-за отсутствия знаний.

Файл: database.conf

database {
    datasource {
        driverClassName  = "com.mysql.jdbc.Driver"
        url = "jdbc:mysql://localhost:3306/bamboozle"
    }
}

Объект Case: DatabaseConfig

import com.typesafe.config.ConfigFactory

case object DatabaseConfig extends Enumeration
{
    val
    databaseConfigFile
    ,dataSourceClassName
    ,dataSourceURL = Value

    private val dbMap = Map[DatabaseConfig.Value, String](
        databaseConfigFile -> "database.conf",
        dataSourceClassName -> "database.datasource.driverClassName",
        dataSourceURL -> "database.datasource.url"
    )

    def get(property: DatabaseConfig.Value): String = ConfigFactory.load(dbMap(DatabaseConfig.databaseConfigFile)).getString(dbMap(property))
}

Доступ к свойствам с использованием println (DatabaseConfig.get (DatabaseConfig.dataSourceURL)) *

AsВы можете увидеть, добавляю ли я значения в database.conf, мне нужно обновить перечисления DatabaseConfig И dbMap.Есть ли лучшие идиоматические способы сделать это?Поиск «свойств файла чтения scala» в основном приводит к результатам, где используются строковые литералы -____-.Заранее спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...