Я хотел бы получить предложения по лучшему подходу к доступу к свойствам файлов в приложении.
Как видно из названия, при использовании 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» в основном приводит к результатам, где используются строковые литералы -____-.Заранее спасибо за помощь.