其他分享
首页 > 其他分享> > SpringBoot参数校验

SpringBoot参数校验

作者:互联网

请求参数的校验是非常容易犯错,或存在较多改进点的常见场景。比较常见的问题主要表现在以下几个方面:

所以,针对上面的问题,建议服务端开发在实现接口的时候,对于请求参数必须要有服务端校验以保障数据安全与稳定的系统运行。同时,对于参数的校验实现需要足够优雅,要满足逻辑易读、易维护的基本特点。

JSR-303

什么是JSR?

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

JSR-303定义的是什么标准?

JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。

Bean Validation中内置的constraint

字符串上还可以加@NotBlank注解来判断是不是空串。

Hibernate Validator附加的constraint

动手实践

实体类

直接在实体类上加上上方的注解。()

@Data
@ApiModel(description="用户实体")
public class User {

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

    @NotBlank
    @Size(min = 2,max = 5)
    @ApiModelProperty("用户姓名")
    private String name;

    @NotNull
    @Max(100)
    @Min(0)
    @ApiModelProperty("用户年龄")
    private Integer age;

    @NotNull
    @Email
    @ApiModelProperty("用户邮箱")
    private String email;
}

请求接口中

直接在请求的参数实体类前加入@Valid注解

    @PostMapping("/")
    @ApiOperation(value = "创建用户", notes = "根据User对象创建用户")
    public String postUser(@Valid @RequestBody User user) {
        users.put(user.getId(), user);
        return "success";
    }

标签:Java,SpringBoot,constraint,303,校验,private,参数,JSR
来源: https://www.cnblogs.com/kpsmile/p/14173088.html