文档章节

java的Bean Validation 2.0

王坤charlie
 王坤charlie
发布于 05/06 11:06
字数 821
阅读 41
收藏 1

一、什么是Bean Validation 2.0。

JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向java管理组织,JCP(Java Community Process)标准组织提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

二、 Bean Validation 的链接:

也就是说JSR提出了一个标准JSR #380 Bean Validation 2.0。然后hibernate-validator实现了这个标准。(类似于JDBC,然后其他厂商实现JDBC)

三、Bean Validation 的用法。

1、在springboot中,直接在java属性上面使用Bean Validation的注解。如下:

public class CustomerUpdateVO{

    @Size(max = 32)
    private String name;
    @Size(max = 255)
    private String coverImg;
    //省略getter、setter。
 }
  • @Size(max = 255) 表示这个属性的最大长度是255。超过就会校验错误。

2、然后controller中直接使用:

    @PutMapping("/{id}")
    public  update(@PathVariable String id, @Valid @RequestBody CustomerUpdateVO updateVO) {
    	//其他代码
    }

四、Bean Validation 2.0 都有哪些注解。

  1. 其他的注解可以查看Bean Validation 2.0的标准文档: https://beanvalidation.org/2.0/spec/
  2. 也可以查看API文档:https://docs.jboss.org/hibernate/beanvalidation/spec/2.0/api/
  3. 通过查看API文档,可以看到Bean Validation 2.0有下面这些内置的检验规则。具体使用后面补充。
  • AssertFalse
  • AssertFalse.List
  • AssertTrue
  • AssertTrue.List
  • DecimalMax
  • DecimalMax.List
  • DecimalMin
  • DecimalMin.List
  • Digits 带注释的元素必须是可接受范围内的数字。支持的类型是:
    BigDecimal、BigInteger、字符串,(byte, short, int, long 和他们的包装类)。null元素被认为是有效的。
    例如:@Digits(integer = 6, fraction = 2)
    integer表示: 此数字接受的最大整数位数。这里是6;fraction 表示:此数字接受的最大小数位数,这里是2
  • Digits.List
  • Email
  • Email.List
  • Future
  • Future.List
  • FutureOrPresent
  • FutureOrPresent.List
  • Max
  • Max.List
  • Min
  • Min.List
  • Negative
  • Negative.List
  • NegativeOrZero
  • NegativeOrZero.List
  • NotBlank 带注释的元素不能是null,必须包含至少一个非空字符。
    支持的类型string(字符串至少一个非空字符)。
  • NotBlank.List
  • NotEmpty 带注释的元素不能null或空。
    支持的类型:string(字符串长度),Collection(集合大小), Map(map的大小), Array(数组的长度)
  • NotEmpty.List
  • NotNull
  • NotNull.List
  • Null
  • Null.List
  • Past
  • Past.List
  • PastOrPresent
  • PastOrPresent.List
  • Pattern
  • Pattern.List
  • Positive 带注释的元素必须严格正数(即0被认为是一个无效的值)。null元素被认为是有效的。
    支持的类型:BigDecimal、BigInteger、(byte, short, int, long, float, double 和他们的包装类)
  • Positive.List
  • PositiveOrZero 带注释的元素必须是正数或0。null元素被认为是有效的。
    支持的类型:BigDecimal、BigInteger、(byte, short, int, long, float, double 和他们的包装类)
  • PositiveOrZero.List
  • Size 带注释的元素大小必须在指定的边界之间(包括)。null元素被认为是有效的。
    支持的类型:string(字符串长度),Collection(集合大小), Map(map的大小), Array(数组的长度)
  • Size.List

© 著作权归作者所有

王坤charlie
粉丝 5
博文 200
码字总数 56997
作品 0
东城
程序员
私信 提问
Java 应用服务器 WildFly 14 发布,支持 Java EE8

WildFly 14 Final 已发布,可点此下载。 WildFly 14 已通过 Java EE8 认证,因此默认的 EE7 模式和 EE8 预览选项已被删除。服务器现在在所有运行模式下仅提供 EE8 API 。由于 Java EE8 向后兼...

王练
2018/09/01
1K
0
Java EE 6 发布

在过去的几个月里一些Java EE 6相关的JSRs((Java Specification Requests))纷纷定稿,最后一轮投票与11月30日结束并且所有均获通过。今天,2009年12月10日,Java EE 6的参考实现 —— Java E...

红薯
2009/12/11
1K
1
spring4.0的一些新消息

刚刚溜达了一瞧tss,就看到了关于spring4的相关消息 For Spring Framework 4.0, our focus is on emerging enterprise themes in 2013 and beyond: First-class support for Java SE 8 based......

恺哥
2013/02/03
1K
2
Java Bean Validation

在这本文中,我们将介绍使用标准框架验证Java bean的基础知识 - JSR 380,也称为Bean Validation 2.0。 当然,验证用户输入在大多数应用程序中是一个超常见的要求,Java Bean Validation框架...

qianmoQ
03/12
31
0
Bean Validation 2.0 发布,并通过 JCP 投票成为规范

经过一年的努力开发以及自上一次修订之后的四年多时间,Bean Validation 2.0 (JSR 380) 的最终正式版终于发布了。 上周,JCP 执行委员会以 25 票赞成票一致通过了 JSR 的最终批准投票。投票结...

局长
2017/08/08
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

Shell学习记录(持续更新)

一、shell定时备份数据库任务通用脚本 目标:根据定时任务启动脚本,执行数据库备份任务,按照日期进行每日备份,如已经备份则脚本停止,备份任务完成后将结果发送邮件提醒 1.执行数据库备份...

网络小虾米
今天
3
0
PHP计算两个经纬度地点之间的距离

/** * 求两个已知经纬度之间的距离,单位为米 * * @param lng1 $ ,lng2 经度 * @param lat1 $ ,lat2 纬度 * @return float 距离,单位米 * @author www.Alixixi.com */function get...

子枫Eric
今天
14
0
Linux—day 4

ch2 需要掌握的命令 (1)cat -n 1.txt (2)more 1.txt (3)head -n 15 initial-setup-ks.cfg (4)tail -n 17 initial-setup-ks.cfg;tail -f initial-setup-ks.cfg (5)cat -n anaconda-ks.c......

呵呵暖茶
今天
31
0
【Kubernetes社区之路】我的PR被抢了

2019年11月的某天,我无意间发现一个PR作者在自己的PR中抱怨自己的PR没被合入,而另一个比自己提交晚且内容几乎一样的PR则被合入了。 字里行间透露些许伤感外加无奈,原文如下: 作为一名开源...

恋恋美食
今天
40
0
阻塞队列

对于许多线程问题, 可以通过使用一个或多个队列以优雅且安全的方式将其形式化。生产者线程向队列插人元素, 消费者线程则取出它们。 使用队列, 可以安全地从一个线程向另 一个线程传递数据...

ytuan996
今天
48
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部