注解核验参数
public class Param {
@NotNull(message = "用户名称 不能为空")
private String name;
}
package com.baihai.fourhundred.config;
import com.baihai.fourhundred.base.expection.BaseException;
import com.baihai.fourhundred.base.model.enums.ResponseEnum;
import com.baihai.fourhundred.base.model.response.BaseResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.method.HandlerMethod;
import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolationException;
/**
* @author guanyu
* @date 2022/2/28 - 10:55
*/
@ResponseBody
@ControllerAdvice
@Slf4j
public class CommonExceptionHandler {
@ExceptionHandler({BaseException.class})
public BaseResponse apiBaseException(BaseException e, HttpServletResponse response, HandlerMethod method) {
return this.process(e, response, method);
}
@ExceptionHandler({Exception.class})
public BaseResponse apiException(Exception e, HttpServletResponse response, HandlerMethod method) {
return this.process(e, response, method);
}
@ExceptionHandler({MethodArgumentNotValidException.class})
public BaseResponse apiNotValidException(Exception e, HttpServletResponse response, HandlerMethod method) {
return this.process(e, response, method);
}
private BaseResponse process(Throwable e, HttpServletResponse response, HandlerMethod method) {
if (e instanceof MethodArgumentNotValidException) {
BindingResult bindingResult = ((MethodArgumentNotValidException) e).getBindingResult();
String msg = "校验失败:";
StringBuilder sb = new StringBuilder();
for (FieldError fieldError : bindingResult.getFieldErrors()) {
if (sb.length() > 0) {
sb.append(", ");
}
sb.append(fieldError.getField()).append(":").append(fieldError.getDefaultMessage());
}
msg = msg + sb.toString();
return BaseResponse.failResponse(msg);
} else {
log.error("系统异常:", e);
return BaseResponse.failResponse(e.getMessage());
}
}
}