在Scala Play中读取application.conf配置

3

我在application.conf中配置了以下数据源,用于执行Slick语句。

我需要通过一个OLAP引擎访问相同的数据库,该引擎将使用相同的用户和密码。

由于已经进行了配置,因此我希望可以从中获取这两个值,是否可以从Scala中读取application.conf? 我知道我可以读取物理文件,但是否有库可以获取解析后的数据?

## JDBC Datasource
# ~~~~~
#

dbConfig = {
  url = "jdbc:mysql://localhost:3306/db"
  driver = com.mysql.jdbc.Driver
  connectionPool = disabled
  keepAliveConnection = true
  user=root
  password=xxxx
}

你使用的 Play 版本是哪个? - marcospereira
https://github.com/typesafehub/config(一般而言) - Michael Zajac
正如@m-z所链接的那样,typesafe config是您需要的。但是如果您正在使用Play 2.5,则可以在需要时注入配置。 - marcospereira
1个回答

4
使用Play框架,您只需像这样注入配置即可:

import javax.inject.Inject
import play.api.Configuration

class Something @Inject()(configuration: Configuration) {
  val url: Option[String] = configuration.getString("dbConfig.url")
  val keepAliveConnection: Option[Boolean] = configuration.getBoolean("dbConfig.keepAliveConnection")

  ...
}

此外,还可以参考配置API以便以不同的类型和格式获取属性。


完美地工作了,我只想补充一下值是以 Option 形式返回的。将自己的值存储在 application.conf 中,将其用作属性文件,这是一个好的实践吗? - ps0604
增加了选项类型以进行澄清。是的,这是一个很好的练习。生产配置 对您也可能有用。 - Roman
也许可以在你的回答中加入以下内容: 导入:import javax.inject.Inject import play.api.Configuration - Jake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接