Java Validation Api (自定义篇)
背景
官方提供的注解多数可以解决现实业务场景中基本业务校验,但有些特殊场景因业务的复杂性,也还是需要在入口处对入参进行各种角度的校验,以求简化业务层的处理,降低业务处理复杂性与方法入口的强约束性。 以上背景,下面就举个简单Demo进行自定义注解校验的实现。
注解定义类
1 import javax.validation.Constraint; 2 import javax.validation.Payload; 3 import java.lang.annotation.ElementType; 4 import java.lang.annotation.Retention; 5 import java.lang.annotation.RetentionPolicy; 6 import java.lang.annotation.Target; 7 8 /** 9 * @author wpp 10 * @date 2020/8/22 14:30 11 */ 12 @Target({ElementType.FIELD, ElementType.METHOD}) 13 @Retention(RetentionPolicy.RUNTIME) 14 @Constraint(validatedBy = PhoneCustomizeValidator.class) 15 public @interface CustomizeValidator { 16 17 String message() default "不是国内手机号"; 18 19 Class<?>[] groups() default {}; 20 21 Class<? extends Payload>[] payload() default {}; 22 23 }