簡體   English   中英

在 controller springboot 之外使用 javax.validation

[英]Use javax.validation outside controller springboot

我正在嘗試使用 javax.validation 驗證 controller 之外的 class 並生成 MethodArgumentNotValidException 類型的異常。 我查看了以下論壇,但到目前為止它們沒有幫助:
在 Spring MVC 之外手動調用 Spring 注釋驗證
在 Spring MVC 的上下文之外使用 Spring 驗證器

我想要實現的是以下

public class ClassTest {
    @NotEmpty
    private String property1;

    @NotNull
    private String property2;
}

在我的驗證 class 執行以下操作(不是控制器),傳播生成的異常(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
    }
}

謝謝你的幫助

如果我理解正確,您想進行一些自定義驗證嗎?

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);
  }
 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM