目录
前言
参数校验在日常开发时是很常用的操作。为了避免null指针、非法数据存入数据库,我们通常要进行参数校验。我们来看一个参数校验的例子:
@PostMapping("/save")
public Object save(@RequestBody UserVO userVO) {
String mobile = userVO.getMobile();
//手动逐个 参数校验~ 写法
if (StringUtils.isBlank(mobile)) {
return R.bulid(ResultEnum.PARAM_FAIL_CODE,"mobile:手机号码不能为空");
} else if (!Pattern.matches("^[1][3,4,5,6,7,8,9][0-9]{9}$", mobile)) {
return R.bulid(ResultEnum.PARAM_FAIL_CODE,"mobile:手机号码格式不对");
}
//抛出自定义异常等~写法
if (StringUtils.isBlank(userVO.getUsername())) {
throw new ParamException(ResultEnum.PARAM_FAIL_CODE, "用户名不能为空");
}
// 比如写一个map返回
if (StringUtils.isBlank(userVO.getSex())) {
Map<String, Object> result = new HashMap<>(5);
result.put("code", Constant.PARAM_FAIL_CODE);
result.put("msg", "性别不能为空");
return result;
}
//.........各种写法 ...
userService.save(userVO);
return R.success();
}
都0202年了,还这么写参数校验?
validation相信大家都听说过,Spring又怎么会放过这个好东西。传统的validation用起来还挺费劲,但是Springboot他来了~轻松几步搞定参数校验。
先上步骤
导包
只需要spring-boot-starter-validation和web即可
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.13.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>validation-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>