SpringBoot整合Hibernate Validation实现后台数据检验

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写后端接口,看这一篇就够了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值