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