Hibernate Validator自定义参数校验

482 阅读1分钟

在Web开发中常常需要对外部传入的数据进行校验,如果在业务代码中通过if-else进行判断,不仅会让校验代码淹没业务真正的业务逻辑,还难以达到代码复用。

常用的Hibernate Validator提供了很多常用的校验注解,比如@NotNull@Null@Max@NotBlank等,我们可以直接将这些注解加在我们 JavaBean 的属性上面以自动完成参数校验。

有时候Hibernate Validator提供校验注解无法满足我们个性化的校验逻辑,这时候可以通过自定义校验注解来实现。自定义注解的定义依赖于@Constraint,自定义的校验逻辑需要实现ConstraintValidator接口,自定义注解的使用和生效则依赖于@Valid@Valided

自定义注解作用在controller接口参数的HttpServletRequest参数时,还可以用来做鉴权。

参考资料:

自定义校验注解ConstraintValidator

这么写参数校验(validator)就不会被劝退了~