java 手动校验对象

java 手动校验对象,第1张

 
            org.springframework.boot
            spring-boot-starter-validation
        

 

package com.msxf.demo.validtion;

import javax.validation.groups.Default;

/**
 * @author: hzq
 * @date: 2022/4/22
 */
public interface Add extends Default {
}

package com.msxf.demo.model;

import com.msxf.demo.validtion.Add;
import com.msxf.demo.validtion.Edit;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @author: hzq
 * @date: 2022/4/22
 */
@Data
public class ValidModel {

    @NotBlank(message = "name must not null", groups = Edit.class)
    private String name;

    @NotNull(message = "年龄不能为空", groups = Add.class)
    private Integer age;
}
package com.msxf.demo.util;

import cn.hutool.extra.spring.SpringUtil;

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

/**
 * @author: hzq
 * @date: 2022/4/22
 */
public class ValidatorUtil {

//    private static final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    private static final Validator validator = SpringUtil.getBean(Validator.class);

    public static  Set> validate(T object,
                                                           Class... groups) {
        return validator.validate(object, groups);
    }

    public static  Set> validateProperty(T object,
                                                                   String propertyName,
                                                                   Class... groups) {
        return validator.validateProperty(object, propertyName, groups);
    }

    public static  Set> validateValue(Class beanType,
                                                                String propertyName,
                                                                Object value,
                                                                Class... groups) {
        return validator.validateValue(beanType, propertyName, value, groups);
    }

    public static Validator validator() {
        return validator;
    }
}

package com.msxf.demo;

import com.msxf.demo.model.ValidModel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Objects;
import java.util.Set;

import com.msxf.demo.validtion.Add;

@Slf4j
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
        Validator bean = SpringUtil.getBean(Validator.class);
        ValidModel validModel = new ValidModel();
        // validModel.setName("张三");
        Set> validate = 
        bean.validate(validModel,Add.class);
        validate.stream().map(Objects::toString).forEach(log::info);
    }
}

当 Set> validate = validator.validate(validModel);不为空时代表校验不通过。

 输出检验错误

ConstraintViolationImpl{interpolatedMessage='年龄不能为空', propertyPath=age, rootBeanClass=class com.msxf.demo.model.ValidModel, messageTemplate='年龄不能为空'}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/719790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存