2

Play 1.x アプリケーションで、アプリ内のサービス間の接着層として機能する AppContext というクラスを作成したいと考えています。これは単純な依存関係インジェクターとして機能しますが、イベントのワークフローを制御し、さまざまなレイヤーからイベントをキャッチして、サービスがそれ自体を実行する必要がないようにしたいと考えています。

AppContext をプラグインとして実装することが最良の選択肢であることがわかりました。アプリケーションがロードされたときにいくつかのことを実行したり、いくつかのイベントをリッスンしたり、非同期でアクションを実行したりできるからです。

これは正しい方法ですか?

4

1 に答える 1

0

このクラス AppContext を特定のキャッシュ エントリのラッパーとして実装し、分散型キャッシュ ハンドラー (memcache、ehcache、HazelCast などのように既に構成可能) を使用するだけです。

public class AppContext {
    public String getConfig(String name) {
        return Cache.get("appcontext.config."+name, String.class);
    }

    public void setConfig(String name, String value) {
         Cache.set("appcontext.config."+name, value);
    }

    ...
}

すでにいくつかのプラグインがあり、memcache、eh-cache、Hazelcast など、この「分散キャッシュ マネージャー」の一部を構成するだけです。

または、Hazelcast (またはその他) を直接使用して、メモリ内コンテキストを保持および同期したり、キューやデータストアなどを分散方式で処理したりできます。

于 2015-09-11T15:32:18.977 に答える