Валидатор пользовательских параметров при весенней загрузке - PullRequest
1 голос
/ 22 мая 2019

Я создал специальный валидатор для проверки строки, переданной функции в конвертере. Однако пользовательский валидатор не вызывается. Я что-то упустил?

OperationParameter.java

@Documented
@Constraint(validatedBy = OperationParameterValidation.class)
@Target( { ElementType.PARAMETER
        })
@Retention(RetentionPolicy.RUNTIME)
public @interface OperationParameter {
    String message() default "Operation Parameter Invalid";

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

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

OperationParameterValidation.java

public class OperationParameterValidation implements ConstraintValidator<OperationParameter, String> {

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
       System.out.println("Validator called");
        // validation process
        // return true / false;
    }

}

converter.java

@Component
public class StringToOperation implements Converter<String, Operation> {

    @Override
    public Operation convert(@Valid @OperationParameter String source) {
         // Even I pass wrong String this function is executed successfully, and no print from validator
    }
}

Service.java

public class Service {

    @Autowired
    ConversionService conversionService;

    public void action() {

        String action = "";
        Operation addInsertOperation = conversionService.convert(action, Operation.class);
    }

}

1 Ответ

0 голосов
/ 23 мая 2019

Набор @SupportedValidationTarget(ValidationTarget.PARAMETERS) для класса валидатора

...