2016-04-25 6 views
7

現在、Play.currentを次の方法で使用しています。Play.currentは現在廃止されています。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 
    } 
} 

2.5に移行するので、私は

「の代わりにDIを使用し、これはアプリケーションに静的な基準である」

と、それは推奨されているという警告を持っているが、私はどうやってDIを使うべきなのか正確には言いません。

おかげ方法は、プレイ中にこれを実行するように、あなたが今、あなたが設定で実際に興味を持っているあなたのケースではEnvironmentApplicationLifecycleConfigurationの代わりApplication

を使用する必要がありますあなたのユースケースに応じて、

答えて

6

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は今すぐ行く方法です

+0

configuration.getInt( "some.config.key ").getOrElse(-1)? – Scipion

+0

これは完璧です!ここでAPIのドキュメントを見ることができます:https://www.playframework.com/documentation/2.5.x/api/scala/index.html#[email protected]%28path:String%29:Option[Int] – Anton

関連する問題