mirror of
https://gitee.com/bookshelfplus/bookshelfplus
synced 2025-09-22 01:30:40 +08:00
38 lines
1.3 KiB
Java
38 lines
1.3 KiB
Java
package plus.bookshelf.Common.Validator;
|
|
|
|
import org.springframework.beans.factory.InitializingBean;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import javax.validation.ConstraintViolation;
|
|
import javax.validation.Validation;
|
|
import javax.validation.Validator;
|
|
import java.util.Set;
|
|
|
|
@Component
|
|
public class ValidatorImpl implements InitializingBean {
|
|
|
|
private Validator validator;
|
|
|
|
// 实现校验方法并返回校验结果
|
|
public ValidationResult validate(Object bean) {
|
|
ValidationResult result = new ValidationResult();
|
|
Set<ConstraintViolation<Object>> constraintViolationSet = validator.validate(bean);
|
|
if (constraintViolationSet.size() > 0) {
|
|
// 有错误
|
|
result.setHasErrors(true);
|
|
constraintViolationSet.forEach(constraintViolation -> {
|
|
String errMsg = constraintViolation.getMessage();
|
|
String propertyName = constraintViolation.getPropertyPath().toString();
|
|
result.getErrMsgMap().put(propertyName, errMsg);
|
|
});
|
|
}
|
|
return result;
|
|
}
|
|
|
|
@Override
|
|
public void afterPropertiesSet() throws Exception {
|
|
// 将Hibernate Validator通过工厂的初始化方式使其实例化
|
|
this.validator = (Validator) Validation.buildDefaultValidatorFactory().getValidator();
|
|
}
|
|
}
|