spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。

一、简单使用

1、Controller上开启验证

2、DTO上申明被验证的字段

a、声明需要被校验的字段

3、附上部分标签含义

二、@Validated分组

1、Controller上开启验证

2、DTO上申明被验证的字段

a、创建分组接口类

b、声明需要被校验的字段

三、集合校验

如果我们直接使用java.util.Collection下的list或者set来接收数据,参数校验并不会生效!我们可以使用自定义list集合来接收参数:

1、包装List类型,并声明@Valid注解

2、Controller上开启验证

四、嵌套校验

DTO类里面的字段都是基本数据类型和String类型。但是实际场景中,有可能某个字段也是一个对象,这种情况先,可以使用嵌套校验。

1、DTO上申明被验证的字段

【注意】此时DTO类的对应字段必须标记@Valid注解。

参数校验放在controller还是service_@Validated校验的实践相关推荐

  1. 校验注解:@Valid 和 @Validated区别与用法(附详细案例)

    一.案例对象 本文章会以案例为主,讲解@Valid 和 @Validated这两个注解的区别与用法. 1.首先,创建一个学生对象,如下: import lombok.Data;/*** 学生对象*/ ...

  2. Java校验框架使用@Valid、@Validated、OVAL+Groovy

    @Valid 与 @Validated Spring Validation验证框架对参数的验证机制提供了@Validated; javax提供了@Valid,配合BindingResult可以直接提供 ...

  3. 【全网最全】JSR303参数校验与全局异常处理(从理论到实践别用if判断参数了)

    一.前言 我们在日常开发中,避不开的就是参数校验,有人说前端不是会在表单中进行校验的吗?在后端中,我们可以直接不管前端怎么样判断过滤,我们后端都需要进行再次判断, 为了安全 .因为前端很容易拜托,当测 ...

  4. @Validated校验常用

    SpringBoot pom.xml添加依赖 <dependency><groupId>org.springframework.boot</groupId>< ...

  5. Java 校验注解的使用、自定义校验注解

    文章目录 一.引入依赖 二.基本校验 1. 常用校验注解 2. 自动校验 3. 代码中获取校验结果 三.嵌套校验 四.分组校验 五.单属性自定义校验规则 1. 功能:只能取枚举的值 六.多属性自定义联 ...

  6. 【计算机网络】数据链路层 : 差错控制 ( 纠错编码 | 海明码 | “海明码“ 原理 | “海明码“ 工作流程 | 确定校验啊位数 | 确定校验码和数据位置 | 求校验码值 | 检错纠错 )★

    文章目录 一. "海明码" 工作原理 二. "海明码" 工作流程 三. 确定校验码位数 四. 确定校验码和数据位置 0. 确定校验码位置 1. 引入二进制位 2 ...

  7. 常用校验码(奇偶校验码、海明校验码、CRC校验码)

    常用校验码(奇偶校验码.海明校验码.CRC校验码) 一.奇偶校验码 二.海明校验码 三.CRC校验码   计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变 ...

  8. Js传递数组参数到后台controller的方式

    分享一篇js传递数组参数到后台controller的方法,具有很好的参考价值,希望对大家有所帮助. 传递参数传递字符串,所以要把数组转换为字符串, var arr=[1,23,34,5]; var s ...

  9. element手机验证格式_基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)...

    前言 开发过程中遇到了一个需求,根据用户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的 在线访问:动态表单校验 github(欢迎star): https://github.com ...

最新文章

  1. 怎么做才能让浏览器看不到token_卫生间回填及防水怎么做才能后患无忧
  2. C++ STL 总结
  3. datatable 多字段 排序;
  4. MySQL 8.0.22执行器源码分析HashJoin —— 一些初始化函数的细节步骤
  5. linux的系统移植——序言
  6. 学前端可以做哪些功能?
  7. JS中SetTimeOut和SetInterval方法的区别?
  8. 利用python进行数据分析——第十四章_数据分析案例
  9. vue-cli3 中 sockjs-node/info?t=报错 的解决方法
  10. 盘点那些没用的上网小技巧-主流直播平台直播源的获取(适用potplayer)
  11. 给pmbus添加mfr_id, mfr_version, mfr_model节点显示
  12. 向量误差修正(VECM)模型案例分析
  13. Illustrator CS3自学实例高清视频教程
  14. 【每日一题】(D0723)strcpy 智能指针
  15. 如何提高数学分析水平(转载)
  16. 什么是RST包,什么是三次握手,什么是四次握手 ---请进
  17. 东北猫咪带我躺平末世
  18. 计算机北大核心期刊不要审稿费,这些核心医学期刊不收取审稿费(建议收藏)...
  19. java实现简单窗口小游戏“扫雷”
  20. 分布式任务调度框架和微服务的区别

热门文章

  1. 上传文件到云服务器存储路径,上传文件到云服务器存储路径
  2. Flink Forward Global 2021 议题征集ing!
  3. 5天让你技能加满的“王炸组合”,速来!
  4. 连载:阿里巴巴大数据实践—数据服务
  5. 图灵“亲自”给你讲人工智能
  6. 终于有人把Java技术知识面试体系整理出来了,这些文档让你的面试稳如泰山
  7. 使用Unity从零点五开始,做半个不能玩的小游戏(完)
  8. 使命召唤手游新的狙击枪,升级之后堪比巴雷特?会玩的就是
  9. C#字符串截取,查找某字符下标
  10. 【MySql】 BlackHole :黑洞引擎