- java非空验证使用的是springboot的validation进行验证
一、需要引入spring-boot-starter-validation包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.0.7.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
二、添加全局异常捕获
目前测试的异常抛出类型为MethodArgumentNotValidException 异常,但是看其余资料说有另外两种异常就一并捕获了。
import org.springframework.validation.BindException;
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 javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.util.List;
import java.util.Set;
/**
*
* <p>
*
* <p>
* @author 杜洋洋 2020年07月17日
* @since 1.0
*/
@ControllerAdvice
public class GlobalExceptionResolver {
// @RestControllerAdvice
/* 数据校验处理 这里返参可以自定义成系统统一的返参*/
@ExceptionHandler({
MethodArgumentNotValidException.class})
@ResponseBody
public RestResult validatorExceptionHandler(MethodArgumentNotValidException e) {
StringBuilder errorMessage = new StringBuilder();
if (e instanceof MethodArgumentNotValidException) {