Поле автоматического подключения Spring Boot Custom Validator равно нулю - PullRequest
0 голосов
/ 03 марта 2020

Я использую Spring Boot 2.2.4.RELEASE , и у меня есть этот пользовательский валидатор с автоматической связью.

@Component
public class CompanyRequiredValidator implements ConstraintValidator<CompanyRequired, Company> {

    @Autowired
    private CompanyService companyService;

    @Override
    public void initialize(CompanyRequired constraintAnnotation) {
    }

    @Override
    public boolean isValid(Company company, ConstraintValidatorContext context) {
        return company != null && companyService.findByCompanyName(company.getCompanyName()) != null;
    }
}

Моя конфигурация проверки.

@Configuration
public class ValidationConfig {

    @Bean
    public Validator validator() {
        return new LocalValidatorFactoryBean();
    }

    @Bean
    public MethodValidationPostProcessor methodValidationProstProcessor() {
        MethodValidationPostProcessor methodValidationPostProcessor = new MethodValidationPostProcessor();
        methodValidationPostProcessor.setValidator(validator());
        return methodValidationPostProcessor;
    }
}

Независимо от того, что я пробовал, поле autowired возвращает null. Вещи, которые я пробовал:

https://medium.com/@ssscripting / получение-автоматических полей-для-работы-с-ограничением-проверки-в-пружине-boot-74424d5b0aaa

Autowired дает нулевое значение в валидаторе Custom Constraint

Настройка проверки пружины и гибернации

...