首先定义切点
@Pointcut("execution(public * com.controller..*.*(..))")
public void controllerMethod() {
}
前置通知
请求执行之前 打印参数
/**
* 方法执行前
*
* @param joinPoint
* @throws Exception
*/
@Before("controllerMethod()")
public void LogRequestInfo(JoinPoint joinPoint) throws Exception {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
StringBuilder requestLog = new StringBuilder();
Signature signature = joinPoint.getSignature();
requestLog
.append("请求信息:").append("URL = {").append(request.getRequestURI()).append("},\t")
.append("请求方式 = {").append(request.getMethod()).append("},\t")
.append("请求IP = {").append(request.getRemoteAddr()).append("},\t")
.append("类方法 = {").append(signature.getDeclaringTypeName()).append(".")
.append(signature.getName()).append("},\t");
// 处理请求参数
String[] paramNames = ((MethodSignature) signature).getParameterNames();
Object[] paramValues = joinPoint.getArgs();
int paramLength = null == paramNames ? 0 : paramNames.length;