Hibernate validator后台校验使用笔记(一)

参数校验是一个常见的问题,无论是前端还是后台,都需对用户输入进行验证,以此来保证系统数据的正确性。

对于web系统的开发来说,有些人可能理所当然的想只在前端验证就行了,但这样的做法是是非常错误的。前端代码对于用户来说是透明的,稍微有点技术的人就可以绕过这个验证,直接提交脏数据到后台。例如使用http工具直接向后端请求一些违法数据,再比如在浏览器中直接修改js验证提交后台等。

这就要求我们在后台开发的过程中考虑到后台校验,比如字段非空,字段长度限制,邮箱格式、手机格式验证等等,这项工作虽然并没有什么难度,但是却繁琐重复。Hibernate Validator为此提供了一套比较完善、便捷的验证实现方式。使用步骤如下:

 

第一步,导入依赖

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

 

项目还未引入spring-boot-starter-web包可以引入以下依赖:

<dependency>

    <groupId>org.hibernate</groupId>

    <artifactId>hibernate-validator</artifactId>

    <version>4.3.1.Final</version>

</dependency>

 

第二步,配置hibernate Validator

Hibernate validator后台校验使用笔记(一)

注意:hibernate的校验模式分为两种:普通模式和快速失败返回模式

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

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

addProperty( "hibernate.validator.fail_fast", "false" );

2.快速失败返回模式

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

addProperty( "hibernate.validator.fail_fast", "true" );

 

第三步,定义接口接收实体Vo

Hibernate validator后台校验使用笔记(一)

 

第四步,在Contoller接口中获取校验异常信息

Hibernate validator后台校验使用笔记(一)

 

第五步,测试结果

Postman发送错误数据触发验证测试

Hibernate validator后台校验使用笔记(一)

测试结果打印

Hibernate validator后台校验使用笔记(一)

 

更多学习和交流,请关注订阅号:猿事如此

Hibernate validator后台校验使用笔记(一)