@Valid 注解详解 Java Bean Validation的前世今生

Spring @Valid 注解 校验实体属性

1 @Valid 介绍

1.1 前言

在我们日常开发中,数据校验的实现是一件比较痛苦的事情,繁琐且无趣,对于一般的业务而言,极少出现一些过于复杂的校验,常常都是非空,长度,最大最小值,正则,数据关联,定值等等。我在开发过程中为了减少我写这些代码的coding成本,由此认识了javax.validation包下的 @Valid 注解 和 Java 的 Bean Validation 规范。

1.2 Bean Validation

首先了解下JSR(Java Specification Requests)

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

Bean Validation 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回。

Java 在2009年的 JAVAEE 6 中发布了 JSR303以及javax下的validation包内容。

这项工作的主要目标是为java应用程序开发人员提供 基于java对象的 约束(constraints)声明 和 对约束的验证工具(validator),以及约束元数据存储库和查询API。
但是该内容并没有具体的实现, Hibernate-Validator框架 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。

注意:此处的Hibernate 不是 Hibernate ORM

后续关于Bean Validation 的规范提案 和 各个版本的实现 陆续得以迭代,各个版本的信息如下:

Bean Validation Version

release year

JSR Version

Hibernate impl version

apache BVal impl version

Bean Validation 1.0

2009年

JSR 303

Hibernate-Validator-4.3.1.Final

org.apache.bval 0.5

Bean Validation 1.1

2013年

JSR 349

Hibernate-Validator-5.1.1.Final

org.apache.bval 1.1.2

Bean Validation 2.0

2017年

JSR 380

Hibernate-Validator-6.0.1.Final

org.apache.bval 2.0.3(最新版本)

本文主要基于 Hibernate-Validator 框架的实现为主。

1.3 关于validation包

Java-Api文档
其中 javax.validation.constraints包下是 bean validation 支持的约束,以注解的形式使用。
在这里插入图片描述

1.3 关于Spring Hibernate Validator支持的约束集信息(constraints)

截取自 IBM JSR 303

表 1. Bean Validation 中内置的 constraint
在这里插入图片描述
表 2. Hibernate Validator 附加的 constraint
在这里插入图片描述

2 简单的使用

2.1配置项

2.1.1 maven – jar包引入

如果使用springMVC ,需要在 pom文件中引入对应的jar包。

<!--        hibernate.validator jar包-->
        <depend
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值