您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页【校验处理】一、JavaBeanValidation验证

【校验处理】一、JavaBeanValidation验证

来源:化拓教育网
【校验处理】⼀、JavaBeanValidation验证

在真实的开发中,我们经常会遇到需要对数据进⾏校验的业务,那么本篇⽂章对此进⾏总结。暂时总结三种⽅法,⼤家可以根据需要选择使⽤。⼀、Java Bean Validation 验证 ⼆、SpringBoot Validate 统⼀处理 三、Spring Validation 校验处理

本篇⽂章采⽤第⼀种Java Bean Validation的验证⽅式。话不多说,直接上代码。1. 引⼊依赖

注意:java bean validation参数验证,在使⽤的时候,有时候会报错,原因是跟spring版本不兼容,这⾥演⽰的版本如下:

org.hibernate

hibernate-validator 5.1.1.Final

javax.validation validation-api 1.1.0.Final

org.springframework.boot spring-boot-dependencies 2.3.1.RELEASE pom

import

2. 测试实体类

注意:将需要的校验规则直接通过注解写在实体类对应字段上即可

@Data

@AllArgsConstructorpublic class Test {

@Length(min = 1,max = 5,message = \"姓名长度应该在1-5之间\") private String name;

@Range(min = 1,max = 100,message = \"年龄应该在1-100之间\") private Integer age;

@DecimalMax(value = \"100.00\体重有些超标哦\") @DecimalMin(value = \"60.00\多吃点饭吧\") private BigDecimal weight;

@Future(message = \"元素必须是⼀个将来的⽇期\") @JsonFormat(pattern=\"yyyy-MM-dd HH:mm:ss\") private Date date;

@AssertTrue(message = \"此值只能为true\") private Boolean isuser;

@Email(message = \"邮箱地址⽆效\") private String email;}

3. 校验⼯具类注意:

(1)如果想要使⽤,直接调⽤ValidationUtils.validate参数直接传实体对象即可。

(2)validate⽅法可以优化,常见的是新建⼀个set集合,将所有的提⽰消息放到set中之后返回即可。

public class ValidationUtils implements Serializable { public static void main(String[] args) {

Test test = new Test(\"张三张三张三\new BigDecimal(110.00),new Date(),false,\"12345\"); validate(test); }

private static ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); public static String validate(T t) {

try {

Validator validator = factory.getValidator();

Set> constraintViolations = validator.validate(t); for (ConstraintViolation constraintViolation : constraintViolations) {

System.out.println(\"invalidvalue: \"+constraintViolation.getInvalidValue() == null?\"\":constraintViolation.getInvalidValue().toString()+\" propertypath: \"+constraintViolation.getPropertyPath()+\" message: \"+constraintViolation.getMessage }

} catch (Exception e) { e.printStackTrace(); }

return \"\"; }}

4. 总结⼀波实体类上⽀持的注解

参考:持续更新

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务