1. pom.xml
-- 其实这个里面就包含了Hibernate Validation
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
-- 如果没有就添加下面这个
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2. 实体类
public class SysUser implements Serializable {
private static final long serialVersionUID = -60335862334584953L;
/**
* 主键id
*/
private Integer sysUserId;
/**
* 登录名
*/
@NotNull(message = "用户名不能为空")
private String sysUserName;
/**
* 真实姓名
*/
@NotNull(message = "姓名不能为空")
private String sysUserRealname;
/**
* 座机号码
*/
@Pattern(regexp = "^([0-9]{3,4}-)?[0-9]{7,8}$",message = "请输入正确的座机号")
private String sysUserPhone;
......此处省略GET/SET
}
3. 控制器
@PostMapping(value = "register")
@ResponseBody
public Object register(@Validated @RequestBody SysUser sysUser){
return null;
}
4. 全局异常类
这里就不解释注解的用法了,如果不懂的话,可以百度@ControllerAdvice这个注解
@ControllerAdvice
@RestController
public class GlobalExceptionHandler {
//参数检验异常捕捉
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public String methodArgumentNotValidException(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
List<ObjectError> objectErrorList = bindingResult.getAllErrors();
String message = "";
for(int i=0; i<objectErrorList.size(); i++){
message += objectErrorList.get(i).getDefaultMessage()+";";
}
return message;
}
}
5. 接口测试
我使用的是PostMan来测试的
参考文档:
HenrySun1993 - Hibernate Validation注解使用说明
RudeCrab - SpringBoot写后端接口,看这一篇就够了!