Spring Boot系列十四 Spring boot使用spring validation实现对Restful请求的数据进行校验

本文介绍了如何在Spring Boot应用中利用JSR303/JSR-349和Hibernate Validation进行数据校验,并通过Spring Boot的异常处理机制实现自动校验。此外,还详细讲解了如何自定义校验注解`@PhoneValidation`及其验证器,实现在客户信息中的手机号码合法性检查,并提供了相应的测试用例展示校验效果。
摘要由CSDN通过智能技术生成

1. 概述

本文介绍在Spring Boot中实现对请求的数据进行校验。数据校验常用到概念:

  • JSR303/JSR-349: JSR303是一项标准,只提供规范不提供实现,规定一些校验规范即校验注解,如@Null,@NotNull,@Pattern,位于javax.validation.constraints包下。JSR-349是其的升级版本,添加了一些新特性。
  • hibernate validation:hibernate validation是对这个规范的实现,并增加了一些其他校验注解,如@Email,@Length,@Range等等
  • spring validation:spring validation对hibernate validation进行了二次封装,在springmvc模块中添加了自动校验,并将校验信息封装进了特定的类中

本文主要包括如下内容:

  1. 演示spring boot validation + 异常捕获机制实现数据自动校验功能
  2. 自定义校验注解,并演示这个用法

2. 演示spring boot的数据自动校验功能

功能:向服务发送请求,这个请求带上参数,服务需要对参数进行校验。

2.1. Result

封装返回处理结果,如果code=200,则表示添加成功,code=400,则表示输入的数据异常

public class Result {
    private int code;
    private String message;

    // set/get方法略
    …
}

2.2. CustomerDto:

客户端的请求封装到这个dto中。使用校验注解注解此类的成员属性。这些注解的功能看名称就可以看出来。其中 @PhoneValidation就我们自定义的注解,这个后面会说明。每个注解里有个属性message,如果我们不想使用系统默认提供的报错信息,我们可以修改这个值

public class CustomerDto {
   
    @Size(min=2, max=30)
    private String name;

    // 自定义错误信息
    @NotEmpty(message = "自定义错误信息,Email不能为空")
    @Email
    private String email;

    @NotNull
    @Min(18) @Max(100)
    private Integer age;

    @NotNull
    private Gender gender;

    @DateTimeFormat(pattern="MM/dd/yyyy")
    @NotNull @Past
    private Date birthday;

    // 自定义规则注解
    @PhoneValidation
    private String phone;

    
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值