切面的around方法获取httpservletresponse 对象
在切面的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;
}
}
``
原文地址: http://www.cveoy.top/t/topic/dapn 著作权归作者所有。请勿转载和采集!