参数校验(hibernate-validator)

1.项目中为什么要用校验框架?validator又解决了什么问题?

        Java程序开发中,当你要处理一个程序的业务逻辑时,请求参数的数据校验是必须要处理的。当请求参数格式不正确的时候,需要程序监测到,并且返回对应的错误提示,以此来达到数据校验的目的。对于前后端分离开发过程中,数据校验还需要返回对应的状态码和错误提示信息。

        validator框架就是为了解决开发人员在开发的时候少写代码,提高开发效率的;它专门用来做接口参数的校验。spring的validator校验框架遵循了JSR-303验证规范(参数校验规范) ,JSR是Java Specification Requests的缩写。在默认情况下,Sprng Boot会引入Hibernate Validator机制来支持JSR-303验证规范。

        因此,Spring Boot的Validator校验框架有3个特性:

        1.JSR-303特性:JSR-303是一项标准,只提供规范不提供实现,规定一些校验规范即校验注解,如@NotNull、@Null、@NotBlank,位于javax.validation.constraints包下。

        2.Hibernate Validator特性:Hibernate Validator是对JSR-303规范的实现,并增加了一些其他的校验注解,如@Email、@Length等

        3.spring validator:spring validator对Hibernate Validator进行了二次封装,在springMVC模块中添加了自动校验,并将校验信息封装进了特定的类中。

官网地址:http://hibernate.org/validator/documentation

2.添加依赖

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-validator</artifactId>
	<version>6.0.7.Final</version>
</dependency>

        注: 如果使用了springboot,则不需要引用任何依赖,因为spring-boot-starter-web包中已经包含了Hibernate-Validator 依赖 。

3.具体操作

controller层

a96ef82465274a06b85cc8914b93e349.png

4.常用注解

注解说明
@Null被注释的元素必须为 null
@NotNull被注释的元素必须不为 null
@AssertTrue被注释的元素必须为 true
@AssertFalse被注释的元素必须为 false
@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min)被注释的元素的大小必须在指定的范围内,元素必须为集合,代表集合个数
@Pattern(regexp = )正则表达式校验
@Digits (integer, fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past被注释的元素必须是一个过去的日期
@Future被注释的元素必须是一个将来的日期
@Email被注释的元素必须是电子邮箱地址
@Length(min=, max=)被注释的字符串的大小必须在指定的范围内,必须为数组或者字符串,若微数组则表示为数组长度,字符串则表示为字符串长度
@NotEmpty被注释的字符串的必须非空
@Range(min=, max=)被注释的元素必须在合适的范围内
@NotBlank被注释的字符串的必须非空
@URI字符串是否是一个有效的URL

 

注意

  • @NotEmpty 用在集合类上面

  • @NotBlank 只能用在String上面

  • @NotNull 用在基本类型上

5.自定义注解

aff57e3b7840442f92a636138c48ade2.png

 

 5a3b3ae44cb84bd3842d7f25cad0227a.png

 3e3cf269180b4a15b242f2d9d74da3f8.png

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值