私はSpring HandlerInterceptorをアプリケーション(/ app/*)のフロントエンドURLを傍受しています。私は、HandlerInterceptor内でHandler内のどのアクションメソッドが呼び出されるかを判断したいと思います。それを見る方法はありますか?要求されたパスに基づいてそれを見ることができる何かをインターセプタに注入する必要がありますか?Spring HandlerInterceptorからHandlerで呼び出されているメソッドを検索するにはどうすればよいですか?
インターセプタは、このようなものです:
public class PageCacheInterceptor implements HandlerInterceptor {...}
それは、次のようにマッピングされます。
<mvc:interceptors>
<bean class="com.example.web.interceptors.PageCacheInterceptor" />
</mvc:interceptors>
背景(私はあなたが頼むよ知っているので!)。私は単純なページキャッシュをアプリケーションに追加しており、コントローラー内の適切なメソッドごとに@Cacheableのような注釈を使用したいと考えています。インターセプタは、それを作成したアクションに基づいてレスポンスをキャッシュするかどうかを決定できます。例えば
:
@RequestMapping(value = "", method = RequestMethod.GET)
@Cacheable(events={Events.NEW_ORDER,Events.NEW_STAT})
public String home(Model model) {...}
イベントは、キャッシュが無効化されるものです。たとえば、/ widget/listアクションの場合、保存されている新しいウィジェットによってキャッシュされたレスポンスが無効になります。
編集:最新のSpring 3.1 M2にアップグレードしました。私が必要とする機能を暗示したthis blog postですが、これらの新しいクラスを注入するかサブクラス化する必要があるかは不明です。インターセプタでHandlerMethodを取得するためにそれらを使用していますか?
[OK]を役に立てば幸い:
次に、あなたはこの種のものを行うことができます。しかし、... 100人未満の評判を持つユーザーは、自分の質問に8時間答えることができません。だから、あなたが解決策を待っているあなたの席の端にいたら、きつく抱き締めてください... –