在实现ConstraintValidator的类中,存储库为null

时间:2019-01-03 15:35:24

标签: java spring validation constraints

我有实现ConstraintValidator的自定义用户名验证类:

@Component
public class UniqueUsernameConstraint implements ConstraintValidator<UniqueUsername, String> {

    private final UserRepository userRepository;

    @Autowired
    public UniqueUsernameConstraint(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Override
    public void initialize(UniqueUsername constraintAnnotation) {

    }

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        System.out.println(this.userRepository);
        System.out.println(value);
        return false;
    }
}

这里的问题是ValidationUtil调用类时,UserRepository始终为null:

@Component
public final class ValidationUtil {

    private Validator validator;

    public ValidationUtil() {
        this.validator = Validation.buildDefaultValidatorFactory().getValidator();
    }

    public <E> boolean isValid(E entity) {
        return this.validator.validate(entity).size() == 0;
    }
  }

豆类:

@Configuration
public class BeansConfiguration {

    @Bean
    public ModelMapper getModelMapper(){
        return new ModelMapper();
    }

    @Bean
    public ValidationUtil getValidationUtil(){
        return new ValidationUtil();
    }

    @Bean
    public BCryptPasswordEncoder getBCryptPasswordEncoder(){
        return new BCryptPasswordEncoder();
    }

    @Bean
    public SpringSecurityDialect springSecurityDialect(){
        return new SpringSecurityDialect();
    }
}

为什么UserRepository仅在此类中为null,而在服务中却不存在此问题

0 个答案:

没有答案
相关问题