引言
在实际项目中,参数校验是非常重要的一环。它能有效地减少无效的接口调用,减少系统的错误和故障。Spring Boot提供了很便捷的参数校验框架,即Validation。本篇博客将介绍如何在Spring Boot中使用Validation进行参数校验。
1. 添加依赖
首先,我们需要在项目的pom.xml
文件中添加Validation依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2. 创建DTO类
我们先来创建一个简单的DTO(数据传输对象)类,用于接收前端传递的参数:
public class UserDTO {
@NotBlank(message = "用户名不能为空")
private String username;
@NotNull(message = "年龄不能为空")
@Min(value = 18, message = "年龄不能小于18岁")
private Integer age;
// 省略getter和setter方法
}
在这个DTO类中,我们使用了Validation提供的注解来对字段进行校验。@NotBlank
用于校验字符串是否为空,@NotNull
用于校验对象是否为空,@Min
用于校验数值的最小值。
3. 添加校验逻辑
在Controller中,我们可以使用@Valid
注解来对DTO进行校验,并通过BindingResult
对象来获取校验结果:
@RestController
public class UserController {
@PostMapping("/users")
public String createUser(@Valid @RequestBody UserDTO userDTO, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
StringBuilder errors = new StringBuilder();
for (FieldError error : bindingResult.getFieldErrors()) {
errors.append(error.getDefaultMessage()).append("; ");
}
return errors.toString();
}
// 校验通过,继续业务逻辑
// ...
return "创建用户成功";
}
}
在上述代码中,我们使用@Valid
注解对userDTO
进行校验,校验结果会保存在bindingResult
对象中。如果存在错误,我们遍历校验错误列表,将错误信息添加到errors
字符串中,并返回。
4. 测试接口
最后,我们可以使用工具(比如Postman)来测试接口的校验功能。发送一个带有非法参数的POST请求,如:
POST /users
{
"username": "",
"age": 16
}
返回结果将会是:
用户名不能为空; 年龄不能小于18岁;
而发送一个合法的请求,如:
POST /users
{
"username": "Alice",
"age": 20
}
返回结果将会是:
创建用户成功
结论
在本篇博客中,我们介绍了如何使用Spring Boot的Validation进行参数校验。通过添加依赖、创建DTO类、添加校验逻辑,并通过测试接口验证了校验的效果。参数校验是保证系统健壮性和安全性的重要手段,希望本篇博客能对你有所帮助。
参考文档:
本文来自极简博客,作者:琴音袅袅,转载请注明原文链接:Spring Boot参数校验 Validation入门