Spring AOP 切面 Around 方法获取 HttpServletResponse 对象
在 Spring AOP 切面的 Around 方法中,可以通过 ProceedingJoinPoint 参数来获取方法执行的上下文信息,包括 HttpServletRequest 和 HttpServletResponse 对象。可以按照以下步骤获取 HttpServletResponse 对象:
-
在方法参数中添加 HttpServletRequest 和 HttpServletResponse 对象参数。
-
在 around 方法中,通过 ProceedingJoinPoint 参数获取 HttpServletRequest 对象。
-
调用 proceed() 方法执行被切入的方法,获取返回值。
-
在方法返回后,通过 HttpServletResponse 对象参数来对响应进行操作。
下面是一个示例代码:
@Aspect
@Component
public class ResponseAspect {
@Around("execution(* com.example.controller.*.*(..))"
public Object around(ProceedingJoinPoint point, HttpServletRequest request, HttpServletResponse response) throws Throwable {
// 获取HttpServletRequest对象
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// 执行被切入的方法
Object result = point.proceed();
// 对响应进行操作
response.setHeader('Access-Control-Allow-Origin', '*');
response.setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, DELETE');
response.setHeader('Access-Control-Max-Age', '3600');
response.setHeader('Access-Control-Allow-Headers', 'x-requested-with');
response.setContentType('application/json;charset=UTF-8');
return result;
}
}
原文地址: https://www.cveoy.top/t/topic/kxP2 著作权归作者所有。请勿转载和采集!