1.注解类接口
@Documented
@Constraint(validatedBy = { UserStatusValidator.class}) // 说明当前注解要被谁来完成校验工作
@Target({ FIELD})
@Retention(RUNTIME)
public @interface UserStatus {
String message() default "status必须是1000/1001/1002";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
2.注解实现类
public class UserStatusValidator implements ConstraintValidator<UserStatus, Integer> {
@Override
public void initialize(UserStatus constraintAnnotation) {
}
@Override
public boolean isValid(Integer value, ConstraintValidatorContext context) {
if ( value == null ) {
return true;
}
Set<Integer> set = new HashSet<>();
set.add(1000);
set.add(1001);
set.add(1002);
return set.contains(value);
}
}
3.测试校验