Я не смог найти ничего, что помогло, поэтому я спрашиваю:
У меня есть два проекта.Проект 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 никогда не используется.
Как можно это спроектировать?Это вообще возможно?Спасибо за вашу помощь.