一、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,进入到它的依赖包信息:
到这里我们就可以看到了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
结果:
这可了得,保存的数据一点都没有校验,啥都没填写,就保存到数据库了,这也不行呢。
对于数据的校验,那么就是我们接下来要进行讲解的,请接着往下看。
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篇