Spring Boot 2.x基础教程:JSR-303实现请求参数校验

JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

1、Bean Validation中内置的constraint

在这里插入图片描述
Hibernate Validator 附加的 constraint
在这里插入图片描述

3、案例分析

①、定义字段不能为Null,在要校验的字段上添加上@NotNull注解,以及邮箱的校验具体如下:
@Data
@ApiModel(description="用户实体")
public class User {


    @ApiModelProperty("用户编号")
    private Long id;


    @ApiModelProperty("用户姓名")
    @NonNull  // 代表该字段不能为空
    private String name;


    @ApiModelProperty("用户年龄")
    @NonNull  // 代表该字段不能为空
    private Integer age;

    @ApiModelProperty("用户电子邮箱")
    @Email // 必须是一个电子信箱地址
    private String email;
    
}

如下图:
在这里插入图片描述

②、在需要校验的参数实体前添加 @Valid 注解,具体如下:

在这里插入图片描述
完成上面配置之后,启动应用,并用POST请求访问localhost:8888/users/ 接口,参数为“{}”,使用的为postman测试,则会看到如下返回:

在这里插入图片描述

③、增加部分校验

在这里插入图片描述postman测试如下:
在这里插入图片描述
从上图中我们可以明显从errors数组中,知道各个字段的defaultMessage,可以看到很清晰的错误描述。

4、JSR-303在Swagger文档中的体现

在这里插入图片描述
通过上图我们可以看出,email字段则没有体现相关校验说明,这是因为Swagger目前仅支持以下几个注解:@NotNull、@Max、@Min、@Size、@Pattern

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值