springboot 注解实现参数的基础校验
功能实现
实体类加入@Min和@Max注解实现参数范围
@Min(value=-180)
@Max(value=180)
private Double x;
@Min(value=-90)
@Max(value=90)
private Double y;
/**
* 相机的z坐标 z
*/
@NotNull
private Double z;
web接口层实现
接口参数加入@Vaild注解
@RequestMapping("/update")
public Result<String> update(@RequestBody @Valid HistoricSite historicSite,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
List<ObjectError> errorList = bindingResult.getAllErrors();
if (errorList != null && errorList.size() > 0) {
Result<String> result ==ResultUtil.failure2(errorList.get(0).getDefaultMessage());
return result;
}
}
//修改提交
//historicSiteService.update(historicSite);
//Result<String> result = ResultUtil.success("修改数据成功");
return result;
}
请求结果
参数x范围为-180到180,超出范围抛出异常


记录一些常用的校验注解
| 注解 | 验证的数据类型 | 说明 |
|---|---|---|
| @AssertFalse/@AssertTrue | Boolean | 验证注解的元素值是false/true |
| @NotNull /@Null | 任意 | 验证注解的元素值不是空/是空 |
| @Min/@DecimalMin(value=值) | 任何Number类型等 | 验证注解的元素值大于等于value值 |
| @Max/@DecimalMax(value=值) | 任何Number类型等 | 验证注解的元素值小于等于value值 |
| @Digits(integer=整数位数, fraction=小数位数) | 任何Number类型等 | 验证注解的元素值的整数位数和小数位数上限 |
| @Size(min=下限, max=上限) | 字符串、Collection、Map、数组等 | 验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小 |
| @Past /@Future | Date、Calendar、Time类库的日期类型等 | 验证注解的元素值(日期类型)比当前时间早/晚 |
| @NotBlank | CharSequence子类型 | 验证注解的元素值不为空(应用于字符串且在比较时会去除字符串的首位空格) |
| @Length(min=下限, max=上限) | CharSequence子类型 | 验证注解的元素值长度在min和max区间内 |
| @NotEmpty | CharSequence子类型、Collection、Map、数组 | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
| @Range(min=最小值, max=最大值) | BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型 | 验证注解的元素值在最小值和最大值之间 |
| @Email(regexp=正则表达式,flag=标志的模式) | String、任何CharSequence的子类型 | 验证注解的元素值与指定的正则表达式匹配 |
| @Pattern(regexp=正则表达式,flag=标志的模式) | String,任何CharSequence的子类型 | 验证注解的元素值与指定的正则表达式匹配 |
| @Valid | 任何非原子类型 | 指定递归验证关联的对象 |
本文介绍如何使用SpringBoot中的@Min、@Max等注解进行参数校验,并提供了一个具体的例子,展示了如何在实体类中定义校验规则及在控制器中进行校验。
3393

被折叠的 条评论
为什么被折叠?



