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

正常分页查询:

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

当出现异常的查询时:

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

/**** 统一异常处理、数据预处理*/
@ControllerAdvice
public class ControllerExceptionHandler {@ExceptionHandler(value = BindException.class)@ResponseBodypublic 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

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

  1. Spring Cloud实战小贴士:Zuul统一异常处理(一)

    在上一篇<Spring Cloud源码分析(四)Zuul:核心过滤器>一文中,我们详细介绍了Spring Cloud Zuul中自己实现的一些核心过滤器,以及这些过滤器在请求生命周期中的不 ...

  2. Spring Cloud实战小贴士:Zuul统一异常处理(二)

    在前几天发布的<Spring Cloud实战小贴士:Zuul统一异常处理(一)>一文中,我们详细说明了当Zuul的过滤器中抛出异常时会发生客户端没有返回任何内容的问题以及针对这个问题的两种 ...

  3. Spring Cloud实战小贴士:Zuul统一异常处理(三)【Dalston版】

    本篇作为<Spring Cloud微服务实战>一书关于Spring Cloud Zuul网关在Dalston版本对异常处理的补充.没有看过本书的读书也不要紧,可以先阅读我之前的两篇博文:& ...

  4. Spring Boot笔记-404错误统一管理

    这里有一点要注意: spring boot错误的页面都会到error的请求中,所以可以用如下的方式统一管理 package com.xxxxx.apc.controller;import com.ap ...

  5. Spring Boot笔记总结

    总结一下自己最近学的springboot笔记 yaml语法 #对象 student:name: juziage: 666 #行内写法 kid: {name: jujuju,age: 888}#数组 c ...

  6. Spring Boot笔记-普通异常错误截取及构造错误页面

    在web开发过程中,数据问题会有异常,会抛到页面上,这样造成用户体验差. 目前这个笔记是使用Spring Boot获取异常,并构造新的界面 程序运行截图如下: 另外一个: 这样的话就达到了页面友好的效 ...

  7. Spring Boot【定制化】~ AOP统一结果处理以及异常拦截

    1.简介 用处:统一结果处理与异常拦截. 2.配置步骤 2.1.创建一个spring boot项目(idea) 完整项目结构! 2.2.导入依赖(需要使用到简化环境搭建) <!-- Spring ...

  8. Spring Boot笔记—多线程系列(三)—配置参数详解

    前言 前两篇文章,我们已经学会了如何使用spring boot的多线程和自定义线程池.这篇文章,我们要深入了解上一篇文章中线程池的配置具体含义. 准备工作 说明 为了方便观察线程的情况(如执行完毕数量 ...

  9. 动力节点王鹤Spring Boot笔记

    多年来,随着新功能的增加,spring变得越来越复杂.只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同功能. 如果必 ...

最新文章

  1. 限流降级神器-哨兵(sentinel)原理分析
  2. 词移距离 Word Mover‘s Distance
  3. Python 学习散记
  4. 增强画面纵深感的几个小技巧
  5. Equipment upload - ERP ACK
  6. 量角器中Selenium定位器的完整指南(示例)
  7. LeetCode 979. 在二叉树中分配硬币(DFS)
  8. pure tornado -- table
  9. css3 animation
  10. 用法 the_英语冠词:不定冠词a,an和定冠词the的用法
  11. JavaScript开发者的工具箱
  12. 算法设计与分析(未完待续)
  13. Milvus带你实现轻松搭建以图搜图系统
  14. 新视角 | 新形势下工厂设备管理的5大误区
  15. 自动对焦模块理论基础及其硬件实现浅析(二)
  16. QNX Neutrino RTOS简介
  17. 谈谈游戏中的帮派设计
  18. 1到n的数按字典序排序
  19. SQL server学习(五)T-SQL编程之存储过程
  20. table 中th高度固定

热门文章

  1. 42.对话框插件——dialog
  2. linux 系统维护的几样工具
  3. 3个图表突出数据显示小技巧,帮你一秒锁定关键信息
  4. 成就优秀程序员的很多因素你知道多少?
  5. p2psearcher怎么用
  6. 得到的 飞鸽 传书结果就是int * pointer;
  7. you just 飞鸽传书2007绿色版 ever day for two years
  8. 飞鸽传书为什么传书?
  9. VC++实现对远程计算机屏幕的监视
  10. C语言嵌入式系统编程修炼之内存操作