SpringBoot 中进行参数校验
作者:互联网
一般情况下,用户的输入是随意的,为了保证数据的合法性,数据验证是所有 Web 应用必须处理的问题。
在SpringBoot中,Validator有两套,分别是Spring Validator和Hibernate Validator两套Validator,可以混着用,这里我们引入的依赖用的是Hibernate Validat
<!--校验-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
使用方式很简单,接下来定义一个对象
public class User {
/**
* 用户id
*/
private String userId;
/**
* 用户名称
*/
@NotBlank(message = "用户名称不能为空!")
@Length(min = 1, max = 20, message = "用户名称长度需控制在1-20个字符!")
private String userName;
/**
* 用户年龄
*/
private Integer userAge;
/**
* 用户型性别
*/
private String userSex;
//省略get/set/toString方法
}
使用@Valid校验,并将结果封装在BindingResult中
@Slf4j
@RestController
@RequestMapping
public class SubmitController {
@PostMapping("/submit")
public String submit(@RequestBody @Valid User user, BindingResult result) throws Exception {
if(result.hasErrors()){
for(ObjectError error : result.getAllErrors()){
return error.getDefaultMessage(); //或者抛出一个自定义异常
}
}
log.info("获取传递参数:{}", user);
return user.toString();
}
}
注意:
- 一般情况下,如果校验失败可以抛出异常,然后使用统一异常处理去对这些异常做处理
使用postman测试下:
更多参考:
Spring Boot 参数校验 - 废物大师兄 - 博客园
标签:String,校验,private,用户,Validator,参数,result,SpringBoot 来源: https://blog.csdn.net/swadian2008/article/details/123093695