在Web开发中常常需要对外部传入的数据进行校验,如果在业务代码中通过if-else
进行判断,不仅会让校验代码淹没业务真正的业务逻辑,还难以达到代码复用。
常用的Hibernate Validator提供了很多常用的校验注解,比如@NotNull
、@Null
、@Max
、@NotBlank
等,我们可以直接将这些注解加在我们 JavaBean 的属性上面以自动完成参数校验。
有时候Hibernate Validator提供校验注解无法满足我们个性化的校验逻辑,这时候可以通过自定义校验注解来实现。自定义注解的定义依赖于@Constraint
,自定义的校验逻辑需要实现ConstraintValidator
接口,自定义注解的使用和生效则依赖于@Valid
和@Valided
。
自定义注解作用在controller
接口参数的HttpServletRequest
参数时,还可以用来做鉴权。
参考资料: