我想提出一种在应用程序中访问文件属性的更好方法的建议。
正如标题所示,使用scala时,我有各种带有某些属性的配置文件,我想使用某种枚举(或case对象)访问这些属性,而不必记住字符串文字。
下面是我目前的实现方式,但是由于我缺乏知识,我觉得这比必要的要多。
文件:database.conf
database {
datasource {
driverClassName = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost:3306/bamboozle"
}
}
案例对象: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))
您可以看到是否将值添加到database.conf中,然后需要更新DatabaseConfig枚举和dbMap。是否有更好的惯用方式来完成此任务。搜索“ scala读取文件属性”通常会产生使用字符串文字-____-的结果。感谢您的提前帮助。