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
输出检验错误
ConstraintViolationImpl{interpolatedMessage='年龄不能为空', propertyPath=age, rootBeanClass=class com.msxf.demo.model.ValidModel, messageTemplate='年龄不能为空'}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)