Spring validation后台校验框架的简单使用

小编正在参与的项目中用到了后台数据的校验框架,感觉很新奇,就稍微了解了一下,与大家分享简单使用

还是根据之前发过的博客搭建的简单Boot测试环境,swaggerUI进行接口测试。从那个基础上进行添加

工程结构目录:

Spring validation后台校验框架的简单使用_第1张图片

首先,创建需要被校验的实体类

(小编图省事,简单创建了一个,就一个字段)

在需要校验的字段上添加注解

package com.ljctest.pojo;

import lombok.Data;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Pattern;
import java.io.Serializable;

@Data
public class UserMobile implements Serializable {

   // private static final long serialVersionUID = 5641894426920275858L;

    @Pattern(regexp = "^1(3|4|5|7|8)\\d{9}$",message = "手机号码格式错误")
    @NotBlank(message = "手机号码不能为空")
    private String mobile;
}

之后,在controller中添加测试方法

Spring validation后台校验框架的简单使用_第2张图片

测试运行

Spring validation后台校验框架的简单使用_第3张图片

Spring validation后台校验框架的简单使用_第4张图片

测试成功。

附录:

值得注意的地方:

<1> 参数前需要加上@Validated注解,表明需要spring对其进行校验,而校验的信息会存放到其后的BindingResult中。注意,必须相邻,如果有多个参数需要校验,形式可以如下。foo(@Validated Foo foo, BindingResult fooBindingResult ,@Validated Bar bar, BindingResult barBindingResult);即一个校验类对应一个校验结果。

<2> 校验结果会被自动填充,在controller中可以根据业务逻辑来决定具体的操作,如跳转到错误页面。

一个最基本的校验就完成了,总结下框架已经提供了哪些校验:

JSR提供的校验注解:         
@Null   被注释的元素必须为 null    
@NotNull    被注释的元素必须不为 null    
@AssertTrue     被注释的元素必须为 true    
@AssertFalse    被注释的元素必须为 false    
@Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@Size(max=, min=)   被注释的元素的大小必须在指定的范围内    
@Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内    
@Past   被注释的元素必须是一个过去的日期    
@Future     被注释的元素必须是一个将来的日期    
@Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式    


Hibernate Validator提供的校验注解:  
@NotBlank(message =)   验证字符串非null,且长度必须大于0    
@Email  被注释的元素必须是电子邮箱地址    
@Length(min=,max=)  被注释的字符串的大小必须在指定的范围内    
@NotEmpty   被注释的字符串的必须非空    
@Range(min=,max=,message=)  被注释的元素必须在合适的范围内

至此,基于简单的校验就完成了。

此框架还可以自定义设置校验内容,后续可以自己研究。

你可能感兴趣的:(Spring validation后台校验框架的简单使用)