Java Bean Validation

news/2024/11/9 2:16:11/

JSR303 是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面,就可以在需要校验的时候进行校验了。校验框架注解如下:

注解解释
@Null被注释的元素必须为null
@NotNull被注释的元素必须不为null
@AssertTrue被注释的元素必须为true
@AssertFalse被注释的元素必须为false
@Min(value)被注释的元素必须是一个数字,且值必须大于等于指定的最小值
@Max(value)被注释的元素必须是一个数字,且值必须小于等于指定的最大值
@DecimalMin(value)被注释的元素必须是一个数字,且值必须大于等于指定的最小值
@DecimalMax(value)被注释的元素必须是一个数字,且值必须小于等于指定的最大值
@Size(max, min)被注释的元素大小必须在指定的范围内
@Digits(integer, fraction)被注释的元素必须是一个数字,且其值必须在可接受的范围内
@Past被注释的元素必须是一个过去的日期
@Future被注释的元素必须是一个将来的日期
@Pattern被注释的元素必须符合指定的正则表达式

Hibernate validator 在JSR303的基础上对校验注解进行了扩展,扩展注解如下:

注解解释
@Email被注释的元素必须是电子邮箱地址
@length被注释的字符串的大小必须在指定的范围内
@NotEmpty被注释的字符串必须非空
@Range被注释的元素必须在适合的范围内

Spring validtor 同样扩展了jsr303,并实现了方法参数和返回值的校验
Spring 提供了MethodValidationPostProcessor类,用于对方法的校验

使用:
pom.xml添加依赖

<!--jsr 303-->
<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.1.0.Final</version>
</dependency>
<!-- hibernate validator-->
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.2.0.Final</version>
</dependency>

@NotEmpty、@NotBlank、@NotNull 区别和使用

  1. @NotNull
    适用于基本数据类型(Integer,Long,Double等等),当 @NotNull 注解被使用在 String 类型的数据上,则表示该数据不能为 Null(但是可以为 Empty)
  2. @NotBlank
    适用于 String 类型的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后 size > 0
  3. @NotEmpty
    适用于 String、Collection集合、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null 或者 长度为 0

http://www.ppmy.cn/news/9898.html

相关文章

成为有钱人的终极秘诀:做到这7步,你也可以成为富人!

经常有人问&#xff1a;互联网有什么快速赚钱的方法?大多数人内心浮躁&#xff0c;总想以最快的方式搞到钱。因为浮躁&#xff0c;所以沉不下心来去搞钱。做一个项目赚不到钱&#xff0c;然后又开始找项目&#xff0c;换项目&#xff0c;做项目&#xff0c;一直恶性循环中。最…

whistle的使用【前端抓包】

前言 抓包工具看起来只是测试要用的东西&#xff0c;其实对前端作用也很多&#xff0c;因为我们也要模拟请求、mock数据、调试。站在巨人肩膀上永远不亏! whistle能解决的痛点 一、看请求不方便 跳页、支付时候上一页的请求结果看不到&#xff0c;h5、小程序newWork不能在电…

SQL用法详解

1.SQL语言是什么?有什么作用?SQL:结构化查询语言&#xff0c;用于操作数据库&#xff0c;通用于绝大多数的数据库软件2.SQL的特征大小写不敏感需以;号结尾支持单行、多行注释3操作数据库的SQL语言基于功能可以划分为4类:数据定义:DDL ( Data Definition Language)&#xff1a…

GO——函数(一)

函数函数声明多返回值错误错误处理策略文件结尾错误(EOF)函数值函数声明 函数声明包括函数名、形式参数列表、返回值列表&#xff08;可省略&#xff09;以及函数体。 func name(parameter-list) (result-list) {body }返回值也可以像形式参数一样被命名。在这种情况下&#…

[VP]河南第十三届ICPC大学生程序竞赛 L.手动计算

前言 传送门 : 题意 : 给定两个椭圆 的方程 , 要求 求出椭圆并集的面积之和 思路 : 本题很显然是积分 或者 计算几何的问题 对于积分的做法, 无非就是根据积分公式求出第一象限的面积 之后拓展到后面四个象限。(奈何我懒, 连两个椭圆的焦点都不想求更别提后面的积分公式了)…

舆情监测技术方案,网络舆情分析技术手段有哪些?

网络舆情分析技术手段着力于利用技术实现对海量的网络舆情信息进行深度挖掘与分析&#xff0c;以快速汇总成舆情信息&#xff0c;从而代替人工阅读和分析网络舆情信息的繁复工作&#xff0c;接下来TOOM舆情监测小编带您简单了解舆情监测技术方案&#xff0c;网络舆情分析技术手…

Vue--》Vue3生命周期以及其它组合API的讲解

目录 生命周期 自定义hook函数 toRef shallowReactive与shallowRef readonly与shallReadonly toRaw与markRaw 生命周期 Vue3.0中可以继续使用Vue2.x中的生命周期钩子&#xff0c;但是有两个被更名&#xff1a;Vue2中的beforeDestroy改名为&#xff1a;beforeUnmount&…

【vue系列-05】vue的生命周期(详解)

深入理解vue的生命周期一&#xff0c;vue的生命周期1&#xff0c;创建流程1.1&#xff0c;beforeCreate1.2&#xff0c;created2&#xff0c;挂载流程2.1&#xff0c;beforeMount2.2&#xff0c;mounted3&#xff0c;更新流程3.1&#xff0c;beforeUpdate3.2&#xff0c;update…