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: