SpringBoot 使用validation数据校验-超级详细 - 第406篇


一、spring-boot-starter-validation是什么东东?

1.1 spring-boot-starter-validation概述

         spring-boot-starter-validation可以用来校验SpringMVC 的入参,也就是可以用来校验参数的合理性。

1.2 spring-boot-starter-validation是什么?

         spring-boot-starter-validation是快速使用validation的stateter,实际上是通过Hibernate Validator使用 Java Bean Validation。   

         我们来验证一下这一段话,点击spring-boot-starter-validation,进入到它的依赖包信息:

SpringBoot 使用validation数据校验-超级详细 - 第406篇_第1张图片

到这里我们就可以看到了spring-boot-starter-validation是使用了Hibernate Validator,它并没有自己进行实现。

         具体要怎么使用呢?接下来我们通过一个小小的例子来进行说明。

二、spring-boot-starter-validation的小栗子

开发环境说明:

(1)操作系统:Mac OS

(2)Spring Boot 版本:2.5.5

(3)开发工具:IntelliJ IDEA

(4)JDK: 1.8

         例子说明:IntelliJ IDEA

(1)创建一个Spring Boot项目;

(2)构建一个接口,此接口提供保存用户信息;

(3)使用validation进行数据的合理性校验;

2.1 准备工作

2.1.1 创建项目

         首先使用IntelliJ IDEA创建一个项目spring-boot-validation-demo,引入基本的web依赖即可,版本选择2.5.5。

2.1.2 创建一个实体类

         这个实体列就是用于来接收实体类的信息的:

package com.kfit.demo.springbootvalidationdemo.demo;/** * UserInfo实体类 * * @author 悟纤「公众号SpringBoot」 * @date 2021-10-13 * @slogan 大道至简 悟在天成 */public class UserInfo {    private int id;    private String username;    private String password;    private String email;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }}

2.1.3 构建一个API请求访问

         编写一个Controller:

package com.kfit.demo.springbootvalidationdemo.demo;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * TODO * * @author 悟纤「公众号SpringBoot」 * @date 2021-10-13 * @slogan 大道至简 悟在天成 */@RestController@RequestMapping("/userInfo")public class UserInfoController {    @RequestMapping("/saveUserInfo")    public UserInfo saveUserInfo(UserInfo userInfo){        //save userInfo:将userInfo进行保存        //userInfoService.save(userInfo);        return userInfo;    }}

2.1.4 启动应用进行测试

         启动应用,访问如下地址进行测试:

http://127.0.0.1:8080/userInfo/saveUserInfo

         结果:

SpringBoot 使用validation数据校验-超级详细 - 第406篇_第2张图片












 

         这可了得,保存的数据一点都没有校验,啥都没填写,就保存到数据库了,这也不行呢。

         对于数据的校验,那么就是我们接下来要进行讲解的,请接着往下看。

2.2 使用validation进行数据验证

2.2.1 引入依赖

         要使用validation需要在pom.xml文件如下依赖:

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

2.2.2 属性上添加校验注解

         在UserInfo类上添加校验注解:

@NotBlank(message = "用户名不能为空")private String username;@NotBlank(message = "密码不能为空")@Length(min = 6,max = 20,message = "密码长度在6-20之间")private String password;@NotBlank(message = "邮箱不能为空")@Email(message = "邮箱格式不合理")private String email;

2.2.3 在controller方法参数上添加校验注解

         在Controller的方法的参数前面添加注解@Valid或者@Validated:

@RequestMapping("/saveUserInfo")
publicUserInfosaveUserInfo(@Valid UserInfo userInfo){
    //save userInfo:将userInfo进行保存
    //userInfoService.save(userInfo);
    return userInfo;
}

2.2.4 重新启动测试

。。。。。。。。。。。。。。。。。版权原因,完整文章,请参考如下:SpringBoot 使用validation数据校验-超级详细 - 第406篇

你可能感兴趣的:(框架,spring,boot,java,spring)