这里写自定义目录标题

    • 标签含义
  • Validated参数校验
    • 全局捕获异常
    • 实体类
    • 错误信息处理类

标签含义

限制 说明
@Null 限制只能为null
@NotNull 限制必须不为null
@AssertFalse 限制必须为false
@AssertTrue 限制必须为true
@DecimalMax(value) 限制必须为一个不大于指定值的数字
@DecimalMin(value) 限制必须为一个不小于指定值的数字
@Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future 限制必须是一个将来的日期
@Max(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Past 限制必须是一个过去的日期
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@Past 验证注解的元素值(日期类型)比当前时间早
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

Validated参数校验

    @PostMapping("/updateCart")public ApiResponse updateCart( @RequestBody @Validated  CartRequestVO request, BindingResult result) {ValidationUtil.validationBodyException(result);return new ApiResponse (apiResponse .getErrcode(),apiResponse .getErrmsg());}

全局捕获异常

@Slf4j
@RestController
@ControllerAdvice
public class ExceptionAdviceConfiguration {@ExceptionHandler(BException.class)ApiResponse runtimeExceptionHandler(HttpServletRequest request, BException exception) {return ApiResponse(exception.getCode(), exception.getMessage());}}

实体类

@Data
@ToString
public class CartRequestVO  {/*** 商品id*/@NotNull(message = "goodsId不能为空!")@Min(value = 1,message = "非法的goodsId!")private Integer goodsId;/*** 选择标记*/private Boolean selectedFlag;/*** 全选*/private Boolean selectAll;/*** 选择num*///private int selectedNum;/*** 类型*/@NotNull(message = "类型不能为空!")private Integer promType;/*** 购买数量**/@NotNull(message = "购买数量 不存在!")@Min(value = 1,message = "购买数量异常!")private Integer buyNum;
}

错误信息处理类

public class ValidationUtil {/***  校验错误拦截处理** @param result 错误信息集合* @return 错误信息*/public static void validationBodyException(BindingResult result){if (result.hasErrors()) {List<FieldError> fieldErrors = result.getFieldErrors();if (fieldErrors != null && fieldErrors.size() > 0){StringBuilder sb = new StringBuilder();for (int i = 0; i < fieldErrors.size(); i++) {sb.append(fieldErrors.get(i).getField()).append(fieldErrors.get(i).getDefaultMessage()).append(";");}throw new BException(sb.toString());}}}
}

返回

{"statusCode": 28110101,"message": "buyNum购买数量异常!;goodsIdgoodsId不能为空!;","data": null,
}

Validated参数校验相关推荐

  1. Springboot @Validated参数校验

    简单使用 Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现.hibernate validation是对这个规范的实现,并增加了校验注解如@Em ...

  2. spring validated 参数校验

    maven: 必要jar <dependency><groupId>javax.validation</groupId><artifactId>vali ...

  3. @Validated参数校验——校验列表List

    校验列表List 方法一: 2. 包装一层List 3. 自定义一层List 方法一: 在controller层加上@Validated注解 在方法参数使用@valid注解即可 参考 2. 包装一层L ...

  4. 参数校验放在controller还是service_@Validated校验的实践

    spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理. 一.简单使用 1.Controller上开启验证 2.DTO上申明被验证的字段 a. ...

  5. Springboot 参数校验@Valid @Validated(最新最全)

    Springboot 参数校验@Valid @Validated(最新最全) 提示:统一参数校验,异常处理 文章目录 Springboot 参数校验@Valid @Validated(最新最全) 前言 ...

  6. SpringBoot @Validated注解实现参数校验

    1. 前言 做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的.如果参数比较少的话还是容易 处理的一但参数比较多了的话代码中就会出现大量 ...

  7. SpringMVC + Hibernate-Validator 参数校验

    2019独角兽企业重金招聘Python工程师标准>>> 前言: Web开发中,最为常见的场景就是前端表单数据.Json数据与后端实体类的绑定,即使JS能校验并阻止大部分的必填漏填的风 ...

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

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

  9. 聊聊webflux参数校验

    为什么80%的码农都做不了架构师?>>>    序 本文主要研究下webflux如何进行参数校验 使用javax.validation domain import javax.val ...

最新文章

  1. 【Spark篇】---Spark初始
  2. Python学习笔记--程序控制结构
  3. OpenCV 击中或没打中 Hit-or-Miss/Hit-and-Miss
  4. 我是如何使用git把本地代码上传到github上的,值得借鉴
  5. 互联网日报 | 理想汽车交付量突破30000辆;美团王慧文正式退休;寺库打造首个奢侈品直播基地...
  6. Laravel核心解读--Database(三) 模型CRUD
  7. 一个流氓软件有哪些典型特征?
  8. nginx启动只有master没有worker_深入探索Nginx工作原理
  9. Python之路 - 网络编程之Socket
  10. 04. 调用empty而不是检查size()是否为0
  11. 发现gmail有邀请权了。有谁需要,先送5个。
  12. 可以测试流放之路伤害的软件,流放之路:游戏难点!你知道平均每秒伤害(DPS)怎么计算吗!...
  13. php ttc转ttf 在线,iPad字体字库与Windows字库互相转换
  14. 计算机怎样双面打印,电脑双面打印机怎么打印双面_电脑如何设置自动双面打印-win7之家...
  15. ANSYS 有限元分析 接触分析
  16. 看完这篇就够了,mac版本最新Camera Raw 15.1 新功能HDR详解
  17. Nginx从入门到精通(笔记)
  18. Wireshark抓包详细分析
  19. Java提取身份证照片数据,so easy
  20. 个人信息保护建设实践方法的探索过程

热门文章

  1. java集合类(collection)
  2. 维斯乐乐高机器人_龙珠超:贝吉塔装酷失败被暴揍,想超越悟空,维斯说他还不够格...
  3. 微博回应争议条款 今日头条再次“中枪”
  4. Android-- 解决移动魔百盒CM201-2监听不到home键
  5. 关于Mybatis的列索引无效这个问题踩到的坑
  6. 七夕买什么礼物?音质好的蓝牙耳机推荐
  7. H5C3基础学习总结之CSS四种定位模式
  8. WIN10-Python-pclpy离线安装步骤
  9. 禁止电脑更新系统步骤
  10. 一文读懂Thread技术的起源、原理及发展