我在使用Spring Boot 2.1.5的应用程序构建中具有以下自定义休眠验证器。public class MyValidator implements ConstraintValidator {
@Autowired
private MyBean myBean;
@Override
public boolean isValid(DTO dto, ConstraintValidatorContext constraintValidatorContext) {
// logic
}
}
我需要在2种情况下使用此验证器,在isValid方法中,我需要跳过一些检查。我找到了使用以下代码在ConstraintValidatorContext上设置参数的解决方案:HibernateValidatorFactory hibernateValidatorFactory = Validation.buildDefaultValidatorFactory()
.unwrap( HibernateValidatorFactory.class );
Validator validator = hibernateValidatorFactory.usingContext()
.constraintValidatorPayload(RepairEstimateDTO.class.getSimpleName())
.getValidator();
validator.validate(dto);
问题是未注入MyBean,在isValid方法中myBean为null。
如何在2个上下文中重用此验证器而无需代码重复?
谢谢