API Java Validation в подпроектах - PullRequest
       64

API Java Validation в подпроектах

0 голосов
/ 05 февраля 2019

Я не смог найти ничего, что помогло, поэтому я спрашиваю:

У меня есть два проекта.Проект A является базовым проектом, который определяет основные вещи.Проект B является подпроектом Проекта A и расширяет его функциональные возможности (Проект A должен работать как структура, и позже будут реализованы Проекты C и D).У меня есть объект домена в проекте A, например:

public class BasePayload {

    @CustomValidator
    private String name;

}

Фактическая проверка поля 'name' должна быть в проекте B, так как все подпроекты имеют разные допустимые значения для имени.Также я все еще хотел бы иметь валидатор в Project A. для целей тестирования.

@Target({ ElementType.FIELD })
@Retention( RetentionPolicy.RUNTIME )
@Constraint(validatedBy = AbstractFieldValidator.class)
@Documented
public @interface CustomValidator{

    String message() default "message";

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

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

}

Я попытался определить свою собственную аннотацию (@CustomValidator) и абстрактный валидатор, который имеет реализацию в Project B. Но этоне совсем работает, так как нельзя создать экземпляр абстрактного класса.Как только у меня есть реализация этого абстрактного валидатора в проекте A, реализация в проекте B никогда не используется.

Как можно это спроектировать?Это вообще возможно?Спасибо за вашу помощь.

...