我想劫持一个 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]