0

我正在尝试使用 javax.validation 验证控制器外部的类并生成 MethodArgumentNotValidException 类型的异常。我查看了以下论坛,但到目前为止它们没有帮助:
在 Spring MVC 之外手动调用 Spring Annotation Validation
Using Spring Validator 在 Spring MVC 上下文之外

我想要实现的是以下

public class ClassTest {
    @NotEmpty
    private String property1;

    @NotNull
    private String property2;
}

在我的验证类中执行以下操作(不是控制器),传播生成的异常(NotNull、NotEmpty、NotBlank、Pattern 等)

void validationClass(boolean value) {
    ClassTest classTest = new ClassTest();

    if (value) {
        //perform class validation
        errors = validation(classTest);
        throw new MethodArgumentNotValidException(errors);
    } else {
        //OK
    }
}

谢谢你的帮助

4

1 回答 1

0

如果我理解你的话,你想做一些自定义验证吗?

public class CustomValidator {

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();

void validate(Object object) {
    Set<ConstraintViolation<?>> violations = validator.validate(object);
    if (validations.size() > 0) {
    String errorMessage = 
    violations.stream().map(ConstraintViolation::getMessage).collect(Collectors.join(", ");
    throw new MethodArgumentNotValidException(errorMessage);
  }
 }
}
于 2021-01-18T00:10:15.047 回答