1

I am using Spring Boot 2.2.4.RELEASE and I have this custom validator with an autowired service.

@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;
    }
}

My validation configuration.

@Configuration
public class ValidationConfig {

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

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

No matter what I've tried the autowired field returns null. The things I've tried:

https://medium.com/@ssscripting/getting-autowired-fields-to-work-with-constraintvalidators-in-spring-boot-74424d5b0aaa

Autowired gives Null value in Custom Constraint validator

Configuring spring validation and hibernate validation

Saminda Peramuna
  • 735
  • 9
  • 22

0 Answers0