Java 手动显示调用validate的实体属性验证

import org.springframework.util.CollectionUtils;

import javax.validation.ConstraintViolation;
import javax.validation.Valid;
import javax.validation.Validation;
import java.util.Set;


/**
 * 手动调用api方法校验对象
 */

public class MyValidationUtils {

    public static String validate(@Valid Object user) {
        Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory().getValidator().validate(user, new Class[0]);
        if (!CollectionUtils.isEmpty(validateSet)) {
            String messages = validateSet.stream()
                                      .map(ConstraintViolation::getMessage)
                                      .reduce((m1, m2) -> m1 + ";" + m2)
                                      .orElse("参数输入有误!");
            return messages;
        }
        return null;
    }

    public static String validate(@Valid Object user,Class clas) {
        Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory().getValidator().validate(user, clas);
        if (!CollectionUtils.isEmpty(validateSet)) {
            String messages = validateSet.stream()
                                      .map(ConstraintViolation::getMessage)
                                      .reduce((m1, m2) -> m1 + ";" + m2)
                                      .orElse("参数输入有误!");
            return messages;
        }
        return null;
    }
}

  

posted @ 2022-10-12 09:26  遗忘真爱~  阅读(800)  评论(0)    收藏  举报