美文网首页
在service层验证对JSR303进行验证

在service层验证对JSR303进行验证

作者: 花溪的小石头 | 来源:发表于2017-11-28 16:02 被阅读0次

一般都是在实体类上加上JSR303注解,例如:

public Class People{
@NotBlank
private String name;
}

在Controller中添加@valid或者@validated注解旨在接收到请求时进行JSR303的验证。

@RequestMappint("xxx")
public String get(@Valid People people){
......
}

但是把@Valid或者@Validated注解放在service层,直接调用service的方法是不会进行JSR303验证的。为此,显式的调用就显得尤为重要:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    Set<ConstraintViolation<T>> constraintViolations = validator.validate(想要验证的bean);
    ConstraintViolation<T> constraintViolation = getFirst(constraintViolations, null);
    if (constraintViolation != null) {
      throw new ValidationException(constraintViolation.getMessage());
}

使用javax.validation.Validator即可做到在任何地点显式验证JSR303

相关文章

网友评论

      本文标题:在service层验证对JSR303进行验证

      本文链接:https://www.haomeiwen.com/subject/inkebxtx.html