播放2.5中不推荐使用Play.current

时间:2016-04-25 06:28:39

标签: playframework playframework-2.5

我目前正以下列方式使用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。

由于

1 个答案:

答案 0 :(得分:6)

根据您的使用情况,您现在应该使用EnvironmentApplicationLifecycleConfiguration代替 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现在是要走的路了