Spring Boot笔记-validation的使用及统一异常处理

这里以JPA后端分页为例,演示下validation的使用,及统一异常处理。

正常分页查询:

page页是从0开始的,我这里返回的时候,给他加1了。这里要注意。

当出现异常的查询时:

这里的关键异常处理是这个类:

/***
 * 统一异常处理、数据预处理
 */
@ControllerAdvice
public class ControllerExceptionHandler {

    @ExceptionHandler(value = BindException.class)
    @ResponseBody
    public CommonResp validExceptionHandler(BindException e){

        CommonResp commonResp = new CommonResp();
        commonResp.setSuccess(false);
        e.printStackTrace();
        commonResp.setMessage(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());
        return commonResp;
    }
}

其中BindException就是validation的异常

对应的validation设置的类为:

package cn.it1995.req;

import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

@Data
public class PageRequest {

    @NotNull(message = "页码不能为空")
    @Min(value = 0, message = "页码不能为负")
    private Integer page;

    @NotNull(message = "每页条数不能为空")
    @Min(value = 1, message = "每页条数至少为1条")
    @Max(value = 1000, message = "每页条数不能超过1000")
    private Integer size;
}

要使用validation需要在maven中添加:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

源码打包下载地址:

https://github.com/fengfanchen/Java/tree/master/JPAPageable

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页