2016-04-25 11 views
7

Ich verwende Play.current derzeit auf die folgende Weise.Play.current ist in Play veraltet 2.5

import play.api.{Logger, Play} 

object ApplicationConfig { 

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

Da bis 2.5 migrieren, ich habe sagte eine Warnung, dass es mit

„Dies ist ein statischer Bezug auf Anwendung, Verwendung DI statt“

jedoch veraltet ist die Doc sagt nicht genau, wie ich DI stattdessen verwenden soll.

Dank

Antwort

6

auf Ihren Anwendungsfall Je Sie jetzt Environment, ApplicationLifecycle und Configuration statt Application

In Ihrem Fall sind Sie tatsächlich interessieren sich für die Konfiguration so die Möglichkeit, dies im Spiel zu tun, verwenden sollten, 2.5.x würde so sein:

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

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

} 

Das Beispiel, das ich zur Verfügung stellte, ist für eine Steuerung, aber Sie können diese verwenden nähern Sie sich auch an anderen Stellen in Ihrer Anwendung. Ich habe gerade nicht wie das ApplicationConfig Objekt, das Sie zur Verfügung gestellt - es für Refactoring bei der Migration 2.5.x zu spielen - DI ist jetzt der Weg

+0

zu gehen, ist es in Ordnung zu tun: configuration.getInt ("some.config.key ") .getOrElse (-1)? – Scipion

+0

Das ist völlig in Ordnung! Sie können das API-Dokument hier sehen: https://www.playframework.com/documentation/2.5.x/api/scala/index.html#[email protected]%28path:String%29:Option[Int] – Anton

Verwandte Themen