3

劇中!2.0、ここGlobalに記載されているように使用できます。デフォルト(空の)パッケージに含まれている必要があります。Global

アプリケーションにはグローバルも必要で、そのうちのいくつかは のメソッドで使用できる必要がありますGlobal。したがって、次のように Global.scala に配置します。

package object globals {
  lazy val foo = Play.maybeApplication.flatMap(_.configuration.getString("foo")).getOrElse("default_value_of_foo")
}

そして、次のようにコントローラーで使用します。

globals.foo

より良い方法はありますか?

4

2 に答える 2

1

この質問は、Play Framework に関するものというよりも、一般的なソフトウェア設計に関するものだと思います。たくさんのランダムなプロパティが本当に必要な場合は、独自のオブジェクトを作成してみませんか?

object Configuration {
    val timeout = Play.maybeApplication.flatMap(
                      _.configuration.getString("timeout")
                      ).getOrElse(0))
}

ただし、通常、値は構成されている他の論理エンティティに属します。

于 2012-09-30T10:54:55.360 に答える
0

グローバルをアプリのシングルトンとして使用する際に問題がありました。コントローラーからシングルトンにアクセスするには、いくつかの問題もあると思います (この投稿を参照)。

ただし、パッケージの 1 つで独自のシングルトンを作成し、計画どおりにアクセスすることができます。

于 2012-06-20T14:41:32.117 に答える