2012-04-18 4 views
2

WS(Webサービス)ライブラリに一種の「第1レベルのキャッシュ」を提供するために、与えられたリクエスト内の同じURIへのアクセスは一度だけ起こります。現在のところ、@Beforeフィルタを使用して、特定のリクエストが開始される前に、スレッドがローカルのプール内の何かをクリアするようにしています。Playフレームワーク - スレッドのローカルが要求の終了時または次の要求の開始時にクリアされるようにする

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

答えて

0

実行し、我々はプレイ開始から始まる、サーバーに組み込まれた戯曲を使用している

注意/あなたのコントローラでこのよう@With使用してハックは何もありません。私はこれがかなり一般的だと思う。ベースコントローラーを拡張するよりも良い方法です。

特に、要求実行スレッドを中断する約束を使用する場合は、ThreadLocalsを使用することに注意してください。

+0

私はちょうどあなたがそれをするのを忘れなければならないことが嫌いです。それはすべてのコントローラー上にある必要はないはずのクロスカッティングの問題です。また、ThreadLocalsを使用して潜在的な問題を認識すると、要求、セッションなどのために全面的にThreadLocalsを使用するので、フレームワーク自体がそれをどのように処理しているのだろうかと思います。 – dstarh

関連する問題