master
parent
95dd52c1c4
commit
f55b864c67
@ -0,0 +1,44 @@
|
||||
package com.macro.mall.component;
|
||||
|
||||
import com.macro.mall.dto.CommonResult;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.validation.BindingResult;
|
||||
|
||||
/**
|
||||
* HibernateValidator错误结果处理切面
|
||||
* Created by macro on 2018/4/26.
|
||||
*/
|
||||
@Aspect
|
||||
@Component
|
||||
@Order(2)
|
||||
public class BindingResultAspect {
|
||||
@Pointcut("execution(public * com.macro.mall.controller.*.*(..))")
|
||||
/*SpringMVC的参数验证*/
|
||||
/*Spring验证的错误返回BindingResult*/
|
||||
public void BindingResult() {
|
||||
}
|
||||
|
||||
@Around("BindingResult()")
|
||||
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||
/*Around(value="BindingResult()"*/
|
||||
Object[] args = joinPoint.getArgs();
|
||||
for (Object arg : args) {
|
||||
if (arg instanceof BindingResult) {
|
||||
/*参数正常,验证通过*/
|
||||
BindingResult result = (BindingResult) arg;
|
||||
if (result.hasErrors()) {
|
||||
/*传递参数有误*/
|
||||
return new CommonResult().validateFailed(result);
|
||||
/* 验证不通过,产生异常*/
|
||||
/*返回错误文件,错误信息*/
|
||||
}
|
||||
}
|
||||
}
|
||||
return joinPoint.proceed();//调用AOP中环绕通知中proceed方法
|
||||
}
|
||||
}
|
Loading…
Reference in new issue