注解 作用类型 解释
@NotNull 任何类型 属性不能为null
@NotEmpty 集合 集合不能为null,且size大于0
@NotBlanck 字符串、字符 字符类不能为null,且去掉空格之后长度大于0
@AssertTrue Boolean、boolean 布尔属性必须是true
@Min 数字类型(原子和包装) 限定数字的最小值(整型)
@Max 同@Min 限定数字的最大值(整型)
@DecimalMin 同@Min 限定数字的最小值(字符串,可以是小数)
@DecimalMax 同@Min 限定数字的最大值(字符串,可以是小数)
@Range 数字类型(原子和包装) 限定数字范围(长整型)
@Length 字符串 限定字符串长度
@Size 集合 限定集合大小
@Past 时间、日期 必须是一个过去的时间或日期
@Future 时期、时间 必须是一个未来的时间或日期
@Email 字符串 必须是一个邮箱格式
@Pattern 字符串、字符 正则匹配字符串

以上注解用到要验证参数的封装类中的属性上:

public class Test {@NotNull(message = "ID不能为空")@Range(min = 1, max = 100, message = "ID必须在1到100之间")private Integer id;@NotBlank(message = "姓名不能为空")@Length(min = 2, max = 6, message = "姓名必须在2到6位之间")private String name;@NotNull(message = "余额不能为空")@DecimalMax(value = "30.50", message = "余额不能超过30.5")@DecimalMin(value = "1.50", message = "余额不能低于1.5")private BigDecimal amount;@NotNull(message = "生日不能为空")@Past(message = "生日必须是过去")private Date birthday;@NotBlank(message = "邮箱不能为空")@Email(message = "邮箱格式不正确")private String email;@NotBlank(message = "手机号不能为空")@Pattern(regexp = "^(((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(16[6])|(17[0135678])|(18[0-9])|(19[89]))\\d{8})$", message = "手机号格式错误")private String phone;}

然后在controller的每个接口中使用@Validated和BindingResult类

@Validated注解用于验证一个入参,验证之后的消息绑定到BindingResult类中:

    @PostMapping("/test")@ApiOperation(value = "测试", notes = "", response = Result.class)public Result test(@ApiParam(name = "test", value = "参数", required = true) @Validated @RequestBody Test test, BindingResult bindingResult) {if(bindingResult.hasErrors()){String errorMsg = bindingResult.getFieldError().getDefaultMessage();return Result.error(errorMsg);}return Result.ok("参数验证通过");}

SpringBoot注解验证参数相关推荐

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

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

  2. hibernate.validator验证参数

    前言 在接口开发中,经常是需要对传入参数完整性进行验证的,或者对手机号格式进行验证等,而一般不了解@Valid注解之前,都是通过自己封装方法来验证,都是一堆if else集合,这样判断对于代码结构很不 ...

  3. SpringBoot 实现统一参数校验

    一.业务需求 与第三方平台对接,第三方调用接口实现数据上报.由于接口传参较多,要对每一个参数做校验,如果写工具类对每个参数校验会很麻烦,因为,使用springboot自带的校验功能实现对参数的统一校验 ...

  4. SpringBoot 如何进行参数校验,老鸟们都这么玩的!

    大家好,我是飘渺. 前几天写了一篇 SpringBoot如何统一后端返回格式?老鸟们都是这样玩的! 阅读效果还不错,而且被很多号主都转载过,今天我们继续第二篇,来聊聊在SprinBoot中如何集成参数 ...

  5. java分组校验_SpringBoot @Validated注解实现参数分组校验的方法实例

    前言 在前后端分离开发的时候我们需要用到参数校验,前端需要进行参数校验,后端接口同样的也需要,以防传入不合法的数据. 1.首先还是先导包,导入pom文件. org.springframework.bo ...

  6. Springboot优雅的参数校验(一)

    目录 前言 1. 依赖引入 2. 参数形式 3. 常用到的约束注解 4. 参数基础校验 4.1 @RequestBody参数 4.2 @RequestParam参数/@PathVariable参数 4 ...

  7. SpringBoot注解详解

    一.简介 基于 SpringBoot 平台开发的项目数不胜数,与常规的基于Spring开发的项目最大的不同之处,SpringBoot 里面提供了大量的注解用于快速开发,而且非常简单,基本可以做到开箱即 ...

  8. 十、springboot注解式AOP(@Aspect)统一日志管理

    springboot注解式AOP(@Aspect)统一日志管理 简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功 ...

  9. spring注解式参数校验

    转载自 https://blog.csdn.net/jinzhencs/article/details/51682830 一般入参我们都会转为vo对象.那么直接在对象的属性上注解即可.  其实spri ...

最新文章

  1. idea 报错javax/xml/bind/DatatypeConverter
  2. python分类预测_python做logistic分类预测尝试
  3. 【Azure Show】|第三期 人工智能大咖与您分享!嘉宾陈海平胡浩陈堰平
  4. SDI高清视频光端机特点有哪些?
  5. g++和gcc的区别
  6. 自定义格式字符串随笔(IFormattable,IFormatProvider,ICustomFormatter三接口的实现)
  7. Mac下使用gitHub
  8. 防止屏蔽,背投广告代码的完善
  9. 12 年15省赛区大学生电子设计-微弱信号检测装置
  10. 史上最全的点线面距离公式与推导过程(图文介绍)
  11. chrome 切换标签页快捷键_chrome浏览页面常用快捷键
  12. layui 模板引擎-laytpl(局部渲染)
  13. NNNNNNNNNN
  14. 将titles_test表名修改为titles_2017
  15. 树莓派CSI摄像头使用
  16. python爬取饿了么评论_python爬取饿了么的实例
  17. 以Edge浏览器为例演示清除浏览器的缓存
  18. 基于麦克风阵列的声源定位算法之GCC-PHAT
  19. Python常见的魔方方法
  20. 如何写好技术文档——来自Google十多年的文档经验

热门文章

  1. Leetcode每日一题:42.trapping-rain-water(接雨水)
  2. 区块链和数据科学:如果同时应用这两种技术,将会实现什么?
  3. UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)...
  4. java statement 动态参数_java_web学习(九) PreparedStatement动态参数的引入
  5. 快速了解Spring Cloud
  6. Teamcenter 入门开发系列问答(1)
  7. libiconv字符集转换库使用方法
  8. bae java乱码_BAE json 返回乱码。
  9. c语言指针选择排序1,求助利用指针进行选择排序
  10. kafka集群部署成功后,创建生产者往指定主题里面发送消息时出错