Я пытаюсь проверить мой сервис.Когда я использую аннотацию к методу в сервисе или контроллере, тогда ConstraintValidator
успех автоматического проводного репозитория, когда я использую аннотацию к полю в Entity, репозиторий равен нулю.Я не понимаю, почему.
Мой валидатор:
public class MyValidator extends ConstraintValidator<UniqueNumber, Integer> {
@Autowired
private SomeRepository reactorRepository;
@Override
public void initialize(UniqueNumber annotation) {
}
@Override
public boolean isValid(Integer value, ConstraintValidatorContext context) {
...
}
}
Моя тестовая конфигурация:
@Configuration
@EnableJpaRepositories(basePackages = "basePackage")
@EntityScan(basePackages = "basePackage")
@EnableAutoConfiguration
@ComponentScan(basePackages = "basePackage")
public class TestConfiguration {
@PersistenceContext
private EntityManager entityManager;
@Bean
public Validator validator(final AutowireCapableBeanFactory autowireCapableBeanFactory) {
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
.configure()
.constraintValidatorFactory(new SpringConstraintValidatorFactory(autowireCapableBeanFactory))
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
return validator;
}
@Bean
public MethodValidationPostProcessor validationPostProcessor(final AutowireCapableBeanFactory autowireCapableBeanFactory) {
MethodValidationPostProcessor processor = new MethodValidationPostProcessor();
processor.setValidator(validator(autowireCapableBeanFactory));
return processor;
}
}