WebアプリケーションでSpringMVCを使用しています。リクエストごとに、環境を準備したいと思います。たとえば、データストアからデータをロードして保存し、すべてのコントローラーがその情報にアクセスできるようにします。私はそれが(とりわけ)フィルターの目的だと思います。フィルタ内の変数に情報を添付することはできrequest
ますが、コントローラからその情報にアクセスするにはどうすればよいですか?または、これを行うための一般的に良い方法はありますか?
3 に答える
現時点での問題は、フィルター内で要求されたデータセットを取得し(既に実行済み)、コントローラーの hamdlerMapping メソッド内でアクセスする方法だと思います(達成したい)。
前の回答の両方に同意しますが、この方法でのみ行うことにした場合は、私の回答に従うべきだと思います。
リクエストをコントローラーにマップしたハンドラーメソッドでは、メソッドシグネチャーにHttpServletRequest request
パラメーターを含めることができ、フィルターに設定したリクエストパラメーターが含まれます。そして、コントローラーのこの要求オブジェクトからそれを取得できます。
これがお役に立てば幸いです。乾杯。
フィルタリングするかどうかにかかわらず、これがなぜ良いことなのかわかりません。
すべてのコントローラーが必要とする読み取り専用データが本当にある場合は、起動時に読み込まれるキャッシュ ソリューションを使用することをお勧めします。私はフィルターでそれをしませんし、そのようなことですべてのリクエストに負担をかけません. 完了したら、なぜアクションを繰り返し続けるのですか?
@duffymoは正しいですが、本当にやりたい場合は、インターセプター http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvcを使用することをお勧めします-handlermapping-インターセプター