1.写一个注解@MyConstraint
@Target({ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = MyConstraintValidator.class)
public @interface MyConstraint {
java.lang.String message();
java.lang.Class<?>[] groups() default {};
java.lang.Class<? extends javax.validation.Payload>[] payload() default {};
}
2.写一个类定义校验注解使用的逻辑MyConstraintValidator
public class MyConstraintValidator implements ConstraintValidator<MyConstraint,Object> {
@Override
public void initialize(MyConstraint myConstraint) {
System.out.println("my validator init");
}
@Override
public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
System.out.println(value);
return false;
}
}
3.使用
@MyConstraint(message = "这是一个测试注解")