1

遊びます!フレームワークは、ライフタイムがプロセスと同じでなければならないオブジェクトのコンテナーを提供しますか?

Play 2.0 には、onStart と onStop を提供する GlobalSettings がありますが、プロセス ライフタイム オブジェクトの明確な「コンテナー」はありません。

Play 1.2.7 の場合、次のものが必要です。

  1. 一部のリソースを初期化するための onStart フック
  2. リソースをクリーンアップするための onStop フック
  3. プロセス存続期間オブジェクトを管理するためのコンテナ

提案?

4

1 に答える 1

2

初期化とクリーンアップのためにplay ジョブを使用できます@OnApplicationStart: http://www.playframework.com/documentation/1.2.7/jobs#anameconceptsBootstrapjobsa@OnApplicationStop

もう 1 つの方法は、独自のプラグインを作成することです (これにより、beforeActionInvocation などのさらに多くの再生プロセスにフックできます)。

public class ApplicationPlugin extends PlayPlugin {
    @Override
    public void onApplicationStart() { }

    @Override
    public void onApplicationStop() { }

    @Override
    public void beforeInvocation() { }

    @Override
    public void beforeActionInvocation(Method actionMethod) {

    // etc. ...
}

プラグインもconf/play.pluginsファイル内で優先順位を付ける必要があります。

1000:my.java.package.ApplicationPlugin

保存したいオブジェクトに応じて、「プロセスライフタイムオブジェクト」をデータベースまたは単に HashMap に入れることができますか? キャッシュ ( http://www.playframework.com/documentation/1.2.7/cache ) についても考えていましたが、それが最善のアイデアであるかどうかはわかりません (たとえば、有効期限のタイムアウトのため)。

于 2013-10-29T23:34:42.890 に答える