[英]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.