HTTPServletRequest をハイジャックし、AspectJ を使用して値をログに記録したいと考えています。ただし、JoinPoint に格納されるのは「RequestFacade」オブジェクトです。このオブジェクトでできることはあまりないようです。私のロギング戦略はすべて間違っていますか? HttpServletRequest から有用な情報を取得するにはどうすればよいですか? メソッドを呼び出す前にラップを解除する必要がある場合、それはアプリケーションでの AOP の目的を無効にします。
それが違いを生む場合、私はGlassfishサーバーを使用しています。
@Before("execution(* Service.testAuditRecord(..))")
public void logBefore(JoinPoint joinPoint) {
System.out.println("logBefore --->" + joinPoint.getSignature().getName());
System.out.println("logBefore--->Args : " + Arrays.toString(joinPoint.getArgs()));
}
RequestFacade レコード
INFO: logBefore --->testAuditRecord
INFO: logBefore--->Args : [org.apache.catalina.connector.RequestFacade@4dbfa7d0]