@Component
@Aspect
public class WebControllerAop {
@Pointcut("execution(* cn.sky.controller.*..*.*(..))")
public void executeService() {
}
@Around(value="executeService()")//好的
// @Around(value="executeService()&&(args(request,..) || args(..,request))")//好的
// @Around(value="executeService()&&(args(..,request,response)||args(request,response,..))")//好的
public Object doAroundAdvice(ProceedingJoinPoint proceedingJoinPoint) throws Exception {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
Signature signature = proceedingJoinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature)signature;
Method targetMethod = methodSignature.getMethod();
Method realMethod = proceedingJoinPoint.getTarget().getClass().getDeclaredMethod(signature.getName(), targetMethod.getParameterTypes());
Object obj = proceedingJoinPoint.proceed();
return obj;
}
}
在springAOP里面获取request和response对象
最新推荐文章于 2026-05-03 08:58:07 发布
本文介绍了一个使用Spring AOP实现的WebControllerAop类,通过定义切入点和环绕通知来拦截控制器的方法调用,并获取HTTP请求和响应对象。

2838

被折叠的 条评论
为什么被折叠?



