JSR 303 常用注解及示例
JSR 303 常用注解及示例
✅ JSR 303 常用注解及示例
| 注解 | 作用 | 示例 |
|---|---|---|
@NotNull |
值不能为 null |
@NotNull(message = "ID不能为空") |
@NotBlank |
字符串不能为空(非 null 且去除空格后长度 > 0) | @NotBlank(message = "用户名不能为空") |
@NotEmpty |
集合、数组、字符串不能为空(非 null 且 size > 0) | @NotEmpty(message = "列表不能为空") |
@Size |
限制字符串、集合、数组的长度或大小 | @Size(min = 2, max = 10, message = "长度必须在2到10之间") |
@Min / @Max |
限制数字的最小值和最大值 | @Min(1) @Max(100) |
@Positive / @PositiveOrZero |
必须是正数 / 正数或零 | @Positive(message = "价格必须大于0") |
@Negative / @NegativeOrZero |
必须是负数 / 负数或零 | @Negative(message = "余额必须为负") |
@Email |
校验邮箱格式 | @Email(message = "邮箱格式不正确") |
@Pattern |
使用正则表达式校验字符串 | @Pattern(regexp = "\\d{11}", message = "手机号必须是11位数字") |
@AssertTrue / @AssertFalse |
必须为 true / false | @AssertTrue(message = "必须同意协议") |
@Future / @Past |
时间必须是未来 / 过去 | @Future(message = "时间必须是未来") |
@Digits |
限制数字的整数位和小数位 | @Digits(integer = 5, fraction = 2) |
@DecimalMin / @DecimalMax |
限制小数的最小值 / 最大值 | @DecimalMin("0.01") |
📘 示例:用户注册 DTO
import jakarta.validation.constraints.*;public class UserDTO {@NotBlank(message = "用户名不能为空")private String username;@Email(message = "邮箱格式不正确")private String email;@Size(min = 6, max = 20, message = "密码长度必须在6到20之间")private String password;@Min(value = 18, message = "年龄不能小于18岁")@Max(value = 100, message = "年龄不能超过100岁")private Integer age;@Pattern(regexp = "\\d{11}", message = "手机号必须是11位数字")private String phone;@AssertTrue(message = "必须同意用户协议")private Boolean agreed;
}
🧠 小贴士
- 所有注解都支持
message属性自定义错误提示 - 嵌套对象需要加
@Valid才能递归校验 - 方法参数校验需要在类上加
@Validated
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/953626.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!