首先我们只使用java官方的 javax.validation.constraints ,足以使用了,不使用spring boot 自身的,自身的与官方的一致,可能会有扩展,但是还得引入包,麻烦,只用官方的就行了。

用java官方的标准 ,就是所有的参数校验注解都在这个包下:

以下是具体说明:

注解 作用类型 解释

null是否

能通过验证

@AssertFalse Boolean、boolean 该字段值为false时,验证才能通过 YES
@AssertTrue Boolean、boolean 该字段值为true时,验证才能通过 YES
@DecimalMax  数字类型(原子和包装) 验证小数的最大值

@DecimalMax(value = "12.35")
private double money;
YES
@DecimalMin 数字类型(原子和包装) 验证小数的最小值 YES
@Digits 数字类型(原子和包装) 验证数字的整数位和小数位的位数是否超过指定的长度

@Digits(integer = 2, fraction = 2)
private double money;
YES
@Email String 该字段为Email格式,才能通过 YES
@Future 时期、时间 验证日期是否在当前时间之后,否则无法通过校验

@Future
private Date date;
YES
@FutureOrPresent 时期、时间 时间在当前时间之后 或者等于此时 YES
@Max 数字类型(原子和包装)
//该字段的最大值为18,否则无法通过验证
@Max(value = 18)
private Integer age;
YES
@Min 数字类型(原子和包装) 同上,不能低于某个值否则无法通过验证 YES
@Negative   数字<0 YES
@NegativeOrZero   数字=<0 YES
@NotBlank(空格属于空白,blank空白的意思) 只能作用在接收的 String 类型上,注意是只能

1.字符串不能为null

2.字符串trim()后也不能等于空,即空字符不行,空格也不行:

{
"name": " "//空格不可以,即trim后不能为空字符
"name": ""//空字符也不可以
}
NO
@NotEmpty(空格不属于空)

String、集合、数组、Map、链表List;

一般用集合、数组、Map、链表List上

1.不能为null

2.若是字符串,则不能是空字符,空格可以:

{
"name": " "//空格可以
"name": ""//空字符不可以
}

3.集合、数组、map、List等size()不能为0;

NO
@NotNull 任何类型(一般用在 Integer ,Long )

使用该注解的字段的值不能为null,否则验证无法通过

NO
@Null   修饰的字段在验证时必须是null,否则验证无法通过 YES
@Past 时间、日期 验证日期是否在当前时间之前,否则无法通过校验,必须是一个过去的时间或日期 YES
@PastOrPresent 时间、日期 验证日期是否在当前时间之前或等于当前时间 YES
@Pattern   用于验证字段是否与给定的正则相匹配

@Pattern(regexp = "正则")
private String name;
YES
@Positive   数字>0 YES
@PositiveOrZero   数字>=0 YES
@Size 字符串String、集合Set、数组Array、Map,List
修饰的字段长度不能超过5或者低于1
@Size(min = 1, max = 5)
private String name;

集合、数组、map等的size()值必须在指定范围内

    //只能一个
@Size(min = 1, max = 1)
private List<String> names;
 YES

Spring Boot 参数校验注解(自整理,不停的测试更新)的更多相关文章

  1. Validated 注解完成 Spring Boot 参数校验

    1.  @Valid 和 @Validated @Valid 注解,是 Bean Validation 所定义,可以添加在普通方法.构造方法.方法参数.方法返回.成员变量上,表示它们需要进行约束校验. ...

  2. Spring Boot 参数校验

    1.背景介绍 开发过程中,后台的参数校验是必不可少的,所以经常会看到类似下面这样的代码 这样写并没有什么错,还挺工整的,只是看起来不是很优雅而已. 接下来,用Validation来改写这段 2.Spr ...

  3. Spring Boot参数校验

    1. 概述 作为接口服务提供方,非常有必要在项目中加入参数校验,比如字段非空,字段长度限制,邮箱格式验证等等,数据校验常用到概念:JSR303/JSR-349: JSR303是一项标准,只提供规范不提 ...

  4. Spring boot 参数相关注解

    最近使用swagger的在线文档调试接口时发现老是报参数问题,最后发现是方法中参数上的注解有问题,今天把填的坑做一下总结. 1. RequestParam 该注解有两个属性: name/value:表 ...

  5. spring boot输入数据校验(validation)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  6. spring boot @ConditionalOnxxx相关注解总结

    Spring boot @ConditionalOnxxx相关注解总结 下面来介绍如何使用@Condition public class TestCondition implements Condit ...

  7. 59. Spring Boot Validator校验【从零开始学Spring Boot】

    大纲: (1) 入门例子: (2) 国际化: (3) 在代码中添加错误信息: (1) 入门例子: Validator主要是校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数 ...

  8. (32)Spring Boot使用@SpringBootApplication注解,从零开始学Spring Boot

    [来也匆匆,去也匆匆,在此留下您的脚印吧,转发点赞评论] 如果看了我之前的文章,这个节你就可以忽略了,这个是针对一些刚入门的选手存在的困惑进行写的一篇文章. 很多Spring Boot开发者总是使用 ...

  9. Spring Boot 二十个注解

    Spring Boot 二十个注解 占据无力拥有的东西是一种悲哀. Cold on the outside passionate on the insede. 背景:Spring Boot 注解的强大 ...

  10. Spring Boot中@Scheduled注解的使用方法

    Spring Boot中@Scheduled注解的使用方法 一.定时任务注解为@Scheduled,使用方式举例如下 //定义一个按时间执行的定时任务,在每天16:00执行一次. @Scheduled ...

随机推荐

  1. P1955【绿】

    这道题是标准的"离散化+并查集"模版题,通过这道题彻底理解了并查集,同时还意识到了我之前一直用map来实现离散化的方法其实是最简单但是最慢的方法,以这道题为例,map导致时间消耗有 ...

  2. 一种 C++ 转换的非正式分类

    C++ 正式分类方法是直接按语法分类,分为:隐式转换和显示转换.隐式转换又称为标准转换.显示转换又分为:C 风格转换.函数风格转换.C++ 风格转换.C++风格转换就是 static_cast.dyn ...

  3. [Troubleshooting] kubectl cp exit code 255 - exec: \"tar\": executable file not found in $PATH"

    0. 背景 kubectl cp container 文件到本地 host 报错: $ kubectl cp test/po-test-pod-0:/tmp ./ -c ctr-test-contai ...

  4. 分享 ASCII 字符集的字模

    是做 VGA 显示屏时用到的,这是字模资源:gitee 链接 以下为字模代码: // 133 * 16 * 8 字模的 parameter reg [127:0] C_ascii_character ...

  5. C++ ——vector数组笔记

    vector 是 C++ 标准库中的一个动态数组容器(Sequence Container),它可以自动管理内存大小,可以在运行时根据需要动态增长或缩小.它是一个非常常用且强大的容器,用于存储一系列元 ...

  6. MAUI使用Masa blazor组件库

    上一篇(点击阅读)我们实现了UI在Web端(Blazor Server/Wasm)和客户端(Windows/macOS/Android/iOS)共享,这篇我加上 Masa Blazor组件库的引用,并 ...

  7. Laravel路由匹配

    Route常规用法如下,特别是最后一个传参之后可以进行正则匹配,非常好用. //@后面内容为所要访问的方法 Route::get('foo', 'Photos\AdminController@meth ...

  8. 配置Maven项目的pom.xml时遇到input contained no data问题

    1.问题 2.解决 我发现每次当我修改一些部分之后,就会遇到这个问题 我遵循了他的建议重新排列标记属性,然后重新加载就解决了报错 个人怀疑是修改后并没有识别之类的? 最终原因:是我在Maven项目中的 ...

  9. 有了Composition API后,有些场景或许你不需要pinia了

    前言 日常开发时有些业务场景功能很复杂,如果将所有代码都写在一个vue组件中,那个vue文件的代码量可能就几千行了,维护极其困难.这时我们就需要将其拆分为多个组件,拆完组件后就需要在不同组件间共享数据 ...

  10. 阿里云IPV6 创建虚拟机的过程

    阿里云IPV6 创建虚拟机的过程 背景 IPV6 已经越来越广泛的应用. 想在外网开通一下IPV6,发现还有一些坑. 这里总结一下. 备忘. 开通方式 1. 登录阿里云的控制台, 打开云服务器ECS的 ...