この質問に対する回答は、SpringフォーラムとStackOverflowを検索して見つけようとしました。私は恐ろしいアーキテクチャを記述し、私と同じことを求めているページがたくさんあることを知っていましたが、私の意図する使い方が違うので、私と一緒にご負担ください:-)注釈付きでSpring 2.5のAOPアドバイスからHttpServletRequestにアクセス
私は注釈ベースのフォームコントローラ基本的にはこのように:この中
@RequestMapping("/edit/someObject")
public String handleSubmit(HttpServletRequest request, HttpServletResponse response, SomeObject someObject, BindingResult result) {
// Some check here
if(result.hasErrors()) {
return "form";
} else {
SomeObjectService.update(someObject);
return "redirect:/view/someObject";
}
}
私はHttpServletRequestの中で、いくつかのHTTPプロパティをチェックして、このプロパティが特定の値を持っている場合は、リダイレクトを送信するためのHttpServletResponseを使用しています。このチェックは、このアプリケーションのフォームコントローラの多く(ただしすべてではない)で行われます。私がしたいのは、このチェックを行い、コントローラからHttpServletRequestとHttpServletResponseパラメータをドロップするために、AOPのアドバイスによって処理される@CheckedSubmitアノテーションを作成することです。
私の問題は、この2つの(未使用の)パラメータを注釈付きメソッドに使用せずに、このAOPアドバイスから現在のHttpServletRequestとHttpServletResponseにアクセスする方法がわかりません。
要約:@RequestMappingアノテートメソッドでAOPアドバイスからHttpServletRequest/Responseにアクセスするにはどうすればよいですか?
@Configurableが使用されているときに、Springによってインスタンス化されていないオブジェクトに対しては、ソリューション2が機能するという追加コメントがあります(AspectJが必要です) – Tomas