2

スレッド ローカル インプレイを使用して、WS (Web サービス) ライブラリに一種の「第 1 レベル キャッシュ」を提供し、特定のリクエスト内で同じ URI への呼び出しが 1 回だけ発生するようにします。現在、私は @Before フィルターを使用して、特定のリクエストが開始される前に、play がそれらのプールを保持しているように見えるため、スレッド ローカル内のすべてをクリアするようにしています。

ベースコントローラーで @With(MyThreadLocalKillingFilter.class) を実行するよりも、これを実装する良い方法はありますか? 動作しますが、ハックのようです。

play start/run で始まるサーバーに組み込まれた play を使用していることに注意してください

4

1 に答える 1

0

コントローラーでこの方法で @With を使用するハッキングはありません。これはかなり一般的だと思います。ベースコントローラーを拡張するよりも良い方法と考えられています。

ただし、ThreadLocals の使用には注意が必要な場合があります。特に、リクエストの実行スレッドを中断するプロミスを使用する場合は注意が必要です。

于 2012-04-22T05:11:23.777 に答える