Bean/コントローラーメソッドが呼び出される前に、リクエストパラメーター/フォームデータをログに記録する必要があります。私のアプリケーションはSpring Web Flowで書かれています。
それを実装する最良の方法は何ですか?
Bean/コントローラーメソッドが呼び出される前に、リクエストパラメーター/フォームデータをログに記録する必要があります。私のアプリケーションはSpring Web Flowで書かれています。
それを実装する最良の方法は何ですか?
コントローラーに到達する前に各リクエストをインターセプトする必要がある場合は、インターセプターを使用できます。クラスを HandlerInterceptorAdapter で拡張する必要があります。preHandle メソッドをオーバーライドして、コントローラーに到達する前に各リクエストをインターセプトすることができます。このメソッドでリクエスト オブジェクトとレスポンス オブジェクトにアクセスして、ターゲット ページまたは URL を変更します。
Spring AOP が役立つと思います。
すべてのコントローラー メソッドを選択する Pointcut 式を定義し、@Before アドバイスを使用してパラメーターをログに記録します。
例:
@Before("execution(@controllers.package * *(..))")
public void logArguments(JoinPoint joinPoint) throws Throwable {
logger.debug("Entering method - Arguments : " + joinPoint.getArgs());
}
AOP/Aspectj は必要ありません。サーブレット フィルターを使用して実行できます。