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


版权声明:本文为weixin_42579328原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。