37 lines
1.1 KiB
Java
37 lines
1.1 KiB
Java
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错误结果处理切面
|
|
*/
|
|
@Aspect
|
|
@Component
|
|
@Order(2)
|
|
public class BindingResultAspect {
|
|
@Pointcut("execution(public * com.macro.mall.controller.*.*(..))")
|
|
public void BindingResult() {
|
|
}
|
|
|
|
@Around("BindingResult()")
|
|
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
|
|
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();
|
|
}
|
|
}
|