Validation进行参数校验

各位同袍们,你们好呀!!!我是一个才入java开发者行的萌新,今天研究了一下Validation的一个校验框架,为了怕自己遗忘掉,所以在此记录一下,同时也希望能帮到各位同袍们!!!!!!好了,不多说,开始记录!!

首先需要导入一个它的依赖框架

它对ben进行校验

@NotBlank 就是它的验证注解 message 就是它的错误提示消息,可以自定义

它的注解有如下:

自定义错误处理

Spring Boot的Controller方法中可以传一个BindingResult或者Errors类型的参数

@RestController
public class BookController {@PostMapping("/book")public Book getBook(@Valid Book book, BindingResult result, HttpServletResponse response) {if (result.hasErrors()) {result.getAllErrors().forEach((error) -> {FieldError fieldError = (FieldError) error;// 属性String field = fieldError.getField();// 错误信息String message = fieldError.getDefaultMessage();System.out.println(field + ":" + message);});}// ...return book;}
}

Spring Boot的异常处理+Bean Validation

Spring Boot 中有一个专门处理错误信息的一个类叫做ResponseEntityExceptionHandler。其中有很多关于400的错误处理,也就是参数错误的处理,其中就有一个专门用来处理没有通过校验的参数的方法。我们重写这个类的这个方法即可。

@ControllerAdvice   // Spring 的异常处理的注解
public class BadRequestExceptionHandler extends ResponseEntityExceptionHandler {private Logger logger = LoggerFactory.getLogger(getClass());@Overrideprotected ResponseEntity<Object> handleBindException(BindException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {Map<String, String> messages = new HashMap<>();BindingResult result = ex.getBindingResult();if (result.hasErrors()) {List<ObjectError> errors = result.getAllErrors();for (ObjectError error : errors) {FieldError fieldError = (FieldError) error;messages.put(fieldError.getField(), fieldError.getDefaultMessage());}logger.error(messages.toString());}return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(messages);}
}

到此结束,希望能帮助你们,同时也对自己加深印象

Validation进行参数校验相关推荐

  1. java数据校验博客_springmvc教程:利用Validation进行参数校验

    上传图片 1.1 配置虚拟目录 1.2 配置解析器 Validation校验 b/s系统中对http请求数据的校验多数在客户端进行,这也是出于简单及用户体验性上考虑,但是在一些安全性要求高的系统中服务 ...

  2. SpringBoot Validation优雅的参数校验

    前言:大多数项目中都需要后台对传过来的对象进行校验,所以经常需要写一些字段校验的代码,比如特殊字段非空.字段长度限制和邮箱格式验证等等.之前我们可能都是使用if-else-,写这些与业务逻辑关系不大的 ...

  3. Spring Validation最佳实践及其实现原理,参数校验没那么简单!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:六点半起床 juejin.im/post/685654110 ...

  4. Spring Validation 最佳实践及其实现原理,参数校验没那么简单!

    之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation.本文会详细介绍Spring Validation各种场景下 ...

  5. bean validation校验方法参数_SpringBoot参数校验 从入门到精通 解决繁琐的参数验证工作...

    ● 手把手教你实现 SpringBoot与Vue整合开发 前后端分离 简单例子 详解●SQL优化经历  SQL执行效率提高了1000w倍●Java面试题 详解 由易到难● SQL语句大全详解 增删改查 ...

  6. bean validation校验方法参数_Spring Boot 之使用 validation 验证参数

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前,其次是现在 我知道很多人不玩qq了 ...

  7. 使用 Spring Validation 优雅地进行参数校验

    引言 不知道大家平时的业务开发过程中 controller 层的参数校验都是怎么写的?是否也存在下面这样的直接判断? public String add(UserVO userVO) {if(user ...

  8. bean validation校验方法参数_Spring Validation最佳实践及其实现原理,参数校验没那么简单!

    本文同名博客老炮说Java:https://www.laopaojava.com/,每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料 顺便再给大家推荐一套Spring ...

  9. java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值

    你必须非常努力,才能干起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习. ✍前言 ...

  10. springboot中参数校验(validation)使用

    文章目录 介绍: validation引入 可用约束(constraint) 应用实战 实体类 接口参数型 约束生效 实体型 介绍: 在开发中,会经常需要进行参数的校验,比如接口层.业务层.持久层等, ...

最新文章

  1. [转] linux下查看nginx,apache,mysql,php的编译参数
  2. Docker使用自定义网络实现容器互联
  3. java rc4_nodejs 和 java 进行 rc4 加密得到的结果不一样
  4. axios打包放到服务器上接口地址404_如何把网页文件放到云虚拟主机
  5. web框架和后台开发_Web开发框架–第1部分:选项和标准
  6. c# 轻量级ORM框架 实现(一)
  7. 4-1 AlexNet神经网络
  8. 田渊栋团队新作:为什么非对比自监督学习效果好?
  9. Python: 分数运算
  10. myecplise 完全开发
  11. 变电站综合自动化系统是将变电站内的二次设备经过功能的组合和优化设计
  12. 使用pm2管理项目(指令)
  13. 安卓手机传感器采集数据并保存数据
  14. 万圣节到了,来讲鬼故事吧!(大家可以在回复中继续讲)
  15. 驱动开发:Win10枚举完整SSDT地址表
  16. office钓鱼学习
  17. HTML学习总结 基础篇 图像标签imag的使用及其属性
  18. 对VR来说, 眼球追踪技术在里面到底是一个什么角色?
  19. Batch和Epoch之间的区别是什么?
  20. 视频教程-【CVPR2018】A Closer Look at Spatiotemporal Convolu-计算机视觉

热门文章

  1. 勾股定理算斜边用计算机怎么按,三角形斜边(直角三角形斜边计算器)
  2. c语言家谱管理系统不是二叉树,二叉树实现的简单家谱管理系统
  3. WebSocket多人聊天室
  4. 伯努利公式怎么推导的
  5. firewalld系列一:自定义zone与ipset
  6. 深度deepin文件管理上锁无法正常新建和保存文件的解决办法
  7. 基于OpenLayers的地图应用中图标汉化
  8. 请问,“什么知识才是值得学习的?”
  9. 遭遇应用程序正常初始化失败
  10. 浏览器内核控制Meta标签说明文档(360浏览器默认极速模式)