Я пытаюсь проверить бин с помощью пользовательского валидатора.Но валидатору нужна информация, которая должна быть передана ему из метода, где вызывается валидация.Есть ли способ сделать это?
Я не могу передать его в инициализации, так как он недоступен во время создания компонента.
Компонент для проверки
class vehicle {
@VehicleNameValidator
String vehicleName;
}
Аннотация
@Target({ElementType.FIELD})
@Retention(RUNTIME)
@Constraint(validatedBy = VehicleNameValidatorImpl.class)
@Documented
public @interface VehicleNameValidator {
String message() default "Invalid vehicle Name";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
пользовательский валидатор
public class VehicleNameValidatorImpl implements ConstraintValidator<VehicleNameValidator, String[]> {
@Override
public boolean isValid(String vehicleName, ConstraintValidatorContext constraintValidatorContext) {
boolean isValid = logicmethod()//some logic here
return isValid;
}
}
Основной метод
public static void main(String[] args) {
String whatIwantToPass = runtimelogic(args);
vehicle veh1 = new vehicle();
Set<ConstraintViolation<vehicle>> constraintViolations =
validator.validate(veh1);
}
Как передать переменную "whatIwantToPass" из основного метода в VehicleNameValidatorImpl.