8

我目前正在通过以下方式使用 Play.current。

import play.api.{Logger, Play}

object ApplicationConfig {

  val app = Play.current
  def getConfInt(key: String): Option[Int] = {
    val result = app.configuration.getInt(key)
    result
  }
}

自从迁移到 2.5,我有一个警告说它已被弃用

“这是对应用程序的静态引用,请改用 DI”

但是,文档并没有确切说明我应该如何使用 DI。

谢谢

4

1 回答 1

7

根据您的用例,您现在应该使用Environment,ApplicationLifecycleConfiguration不是Application

在您的情况下,您实际上对配置感兴趣,因此在 Play 2.5.x 中执行此操作的方法如下:

class HomeController @Inject() (configuration: play.api.Configuration) extends Controller {

  def config = Action {
    Ok(configuration.underlying.getInt("some.config.key"))
  }

}

我提供的示例是针对控制器的,但您也可以在应用程序的其他位置使用这种方法。我只是不喜欢ApplicationConfig您提供的对象-考虑在迁移到 Play 2.5.x 时对其进行重构-DI 现在是要走的路

于 2016-04-25T06:41:02.937 回答