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的校验模式分为两种:普通模式和快速失败返回模式
1.普通模式(默认是这个模式)
普通模式(会校验完所有的属性,然后返回所有的验证失败信息)
addProperty( "hibernate.validator.fail_fast", "false" );
2.快速失败返回模式
快速失败返回模式(只要有一个验证失败,则返回)
addProperty( "hibernate.validator.fail_fast", "true" );
第三步,定义接口接收实体Vo
第四步,在Contoller接口中获取校验异常信息
第五步,测试结果
Postman发送错误数据触发验证测试
测试结果打印
更多学习和交流,请关注订阅号:猿事如此