Вы можете написать свою пользовательскую аннотацию следующим образом (Этот сценарий может не подходить вам, но я думаю, что логика та же.);
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = { MyValidator.class })
public @interface MyValidationAnnotation {
/**
* @return
*/
String message() default "Your value is not valid";
/**
* @return
*/
Class<?>[] groups() default {};
/**
* @return
*/
Class<? extends Payload>[] payload() default {};
}
public class MyValidator implements ConstraintValidator<MyValidationAnnotation, String> {
public void initialize(MyValidationAnnotation constraintAnnotation) {
}
public boolean isValid(String id, ConstraintValidatorContext context) {
//write your logic here..
return true;
}
}
И, наконец, используйте @MyValidationAnnotation там, где вам это нужно.