Могу ли я создать собственную аннотацию валидации mvc без ссылки на реализацию валидатора - PullRequest
0 голосов
/ 16 января 2020

У меня есть примечание по пользовательскому ограничению Spring Boot:

@Documented
@Constraint(validatedBy = ?)
@Target( { ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomValidation {

    String message() default "";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

и dtos, где я использую его в отдельном общем проекте. Я включил этот проект в другой проект Spring Boot, где я планирую реализовать реальную валидатор для этой аннотации. Эта аннотация помечена @Constraint, где мне нужно пройти реализацию валидатора (а я не могу сделать это, как я описал ранее).

Мой вопрос заключается в том, как создать аннотацию валидатора без реальной реализации и добавить ее позже. в другом проекте.

1 Ответ

0 голосов
/ 16 января 2020

Если это сложный валидатор, вы не можете сделать это - только с помощью реализации валидатора. Но если ваша аннотация является агрегатором других стандартных валидаторов, вы можете указать их и не добавлять реализацию.

Например, аннотация должна проверять электронную почту, а не быть пустой:

@Documented
@Constraint(validatedBy = {})
@Retention(RetentionPolicy.RUNTIME)
@Email(message = "{email.invalid}")
@NotBlank(message = "{email.blank}")
@Target({ElementType.PARAMETER, ElementType.FIELD})
@Size(max = 128, message = "{email.oversize}")
public @interface EmailPattern {

    String message() default "Invalid, empty or long email";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...