JSR303(Bean Validation)提供了一系列常用的校验注解,用于对JavaBean的属性进行数据校验,以下是最常用的一些:
- @Null:被注解的元素必须为null。
- @NotNull:被注解的元素不能为null(适用于任何对象,不能用于基本类型)。
- @NotBlank:被注解的字符串不能为null,且去除首尾空格后长度大于0(仅用于字符串)。
- @NotEmpty:被注解的元素不能为null或空(字符串长度不为0,集合/数组大小不为0)。
- @AssertTrue:被注解的元素必须为true(适用于boolean或Boolean)。
- @AssertFalse:被注解的元素必须为false(适用于boolean或Boolean)。
- @Min(value):被注解的数字(包括整数、浮点数等)必须大于等于value。
- @Max(value):被注解的数字必须小于等于value。
- @DecimalMin(value):被注解的数字必须大于等于value(支持 BigDecimal 等高精度类型)。
- @DecimalMax(value):被注解的数字必须小于等于value(支持 BigDecimal 等高精度类型)。
- @Positive:被注解的数字必须为正数(大于0)。
- @PositiveOrZero:被注解的数字必须为正数或0。
- @Negative:被注解的数字必须为负数(小于0)。
- @NegativeOrZero:被注解的数字必须为负数或0。
- @Size(min, max):被注解的元素(字符串、集合、数组等)的长度必须在min到max之间(包含边界)。
- @Length(min, max):被注解的字符串长度必须在min到max之间(Hibernate Validator扩展注解)。
- @Email:被注解的字符串必须是合法的邮箱格式(允许为空,若需非空需配合@NotNull)。
- @Pattern(regexp):被注解的字符串必须匹配指定的正则表达式。
- @Past:被注解的日期/时间必须是过去的时间(包括当前时间,适用于Date、LocalDateTime等)。
- @PastOrPresent:被注解的日期/时间必须是过去或当前的时间。
- @Future:被注解的日期/时间必须是未来的时间。
- @FutureOrPresent:被注解的日期/时间必须是未来或当前的时间。
这些注解通常添加在JavaBean的属性上,结合校验框架(如Hibernate Validator)使用,可在数据绑定或提交时自动完成校验。