美文网首页Jab Web的那些事儿
hibernate validator在实际业务场景中的使用

hibernate validator在实际业务场景中的使用

作者: littlebin404 | 来源:发表于2019-08-26 10:59 被阅读0次

        很多程序员在写web开发时经常遇到字段的校验,邮箱、出生日期、非空等业务需求,为了解决这个繁琐重复的烦恼,hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式。

下面来介绍一下validator在实际业务中,特别是spring boot这种轻便框架中的一些用法呗。

pom配置:

spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖。

Hibernate Validator有以下两种验证模式:

1、普通模式(默认是这个模式)

  普通模式(会校验完所有的属性,然后返回所有的验证失败信息)

2、快速失败返回模式

  快速失败返回模式(只要有一个验证失败,则返回)

实际场景中,我们多选用快速失败返回模式,即一组数据校验不过则返回异常,参考官方文档,创建一个ValidatorConfiguration,用@Configuration进行注解,代码如下:

配置文件加载成功,其中“hibernate.validator.fail_fast”设置为true即为快速校验模式,false即为普通模式。

在使用快速失败返回模式中,我们要设置分组,来实现谁先校验,如先校验用户名,再校验邮箱……

先定义三个分组:

public interface GroupA {

}

public interface GroupB {

}

@GroupSequence( { Default.class, GroupA.class, GroupB.class })

public interface Group {

}

然后定义实体类并进行分组和做好注解:@NotBlank为不能为空,@Pattern为自定义格式,@Email为邮箱格式……(详细的可参考官方文档)

最后写controller,注意,要用@Validated,不能用valid。

进行测试一波效果先:

啥都不填,按照我们的分组,用户名在default,最先校验,所以返回的是:

故意填错邮箱格式:

故意填错生日,

至此,validator校验框架测试成功,在实际应用场景中还有很多用例,几行代码加注解让你我他远离繁琐重复冗余的字段名校验。

好好学习,天天向上,希望以后有机会一起打怪升级!

相关文章

网友评论

    本文标题:hibernate validator在实际业务场景中的使用

    本文链接:https://www.haomeiwen.com/subject/uexrectx.html