java 手动校验对象

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

 

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 <T> Set<ConstraintViolation<T>> validate(T object,
                                                           Class<?>... groups) {
        return validator.validate(object, groups);
    }

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

    public static <T> Set<ConstraintViolation<T>> validateValue(Class<T> 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<ConstraintViolation<ValidModel>> validate = 
        bean.validate(validModel,Add.class);
        validate.stream().map(Objects::toString).forEach(log::info);
    }
}

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

 输出检验错误

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值