SpringBoot - @Valid 参数校验
一、常用校验注解
空检查
- @Null:限制只能为null
- @NotNull:限制必须不为null
- @NotEmpty:验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
- @NotBlank:验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
Boolean检查
- @AssertFalse:限制必须为false
- @AssertTrue:限制必须为true
长度检查
- @Size(max, min):限制字符串、数组、集合长度范围必须在min到max之间
- @Length(min=, max=):验证注解的元素值长度在min和max区间内,只能用于字符串
日期检查:Date/Calendar
- @Past:限制必须是一个过去的日期
- @Future:限制必须是一个将来的日期
- @Pattern(regexp="reg"):限制必须符合指定的正则表达式
数值检查:建议使用在Stirng,Integer类型
- @Min(value):限制必须为一个不小于指定值的数字
- @Max(value):限制必须为一个不大于指定值的数字
- @DecimalMin(value):限制必须为一个不小于指定值的数字
- @DecimalMax(value):限制必须为一个不大于指定值的数字
- @Digits:验证是否为数字
- @Digits(integer, fraction):限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
- @Range(min=long1,max=long2):检查数字是否在范围min到max之间
其他验证
- @Vaild:递归验证,用于对象、数组和集合,会对对象的元素、数组的元素进行一一校验
- @Email:用于验证一个字符串是否是一个合法的右键地址,空字符串或null算验证通过
- @URL(protocol=协议,host=主机,port=端口号,regexp=正则表达式,flags=标识):用于校验一个字符串是否是合法URL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~