wjxos.github.io

SpringBoot中使Controller中对参数的校验

spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。 比如,我们判断一个输入参数是否合法,可以用如下方式

@Null标注的属性值必须为空
@NotNull标注的属性值不能为空
@AssertTrue标注的属性值必须为true
@AssertFalse标注的属性值必须为false
@Min标注的属性值不能小于min中指定的值
@Max标注的属性值不能大于max中指定的值
@DecimalMin小数值同上
@DecimalMax小数值同上
@Negative负数
@NegativeOrZero0或者负数
@Positive整数
@PositiveOrZero0或者整数
@Size指定字符串长度注意是长度有两个值min以及max用于指定最小以及最大长度
@Digits内容必须是数字
@Past时间必须是过去的时间
@PastOrPresent过去或者现在的时间
@Future将来的时间
@FutureOrPresent将来或者现在的时间
@Pattern用于指定一个正则表达式
@NotEmpty字符串内容非空
@NotBlank字符串内容非空且长度大于0
@Email邮箱
@Range用于指定数字注意是数字的范围有两个值min以及max

Bean Demo

@Data
public class UserDev {
	
	@NotBlank
	private String name;
	@NotNull
	@Min(1)
	@Max(100)
	private Integer age;
	@Email
	private String email;
	@AssertTrue
	private Boolean isMe;
	
}

Controller 中使用代码

@RequestMapping("validation")
public String getConsul(@Validated UserDev dev) {
    return "validation is ok !";
}

参考资料