Jakarta Bean Validation (jakarta.validation.constraints) 标准的注解
Jakarta Bean Validation (jakarta.validation.constraints) 提供了一系列标准的注解,用于简化和标准化JavaBean的数据验证。以下是一些常用的API注解及其用途简介:
- @NotNull: 用于确保字段不为null。适用于任何类型。
- @NotEmpty: 用于String、Collection、Map等容器类型,确保它们不为空(即它们不为null且长度/大小大于0)。
- @NotBlank: 类似于@NotEmpty,但仅适用于String类型,确保字符串不仅不为空而且不只包含空白字符。
- @Min 和 @Max: 分别用于限制数值类型的最小值和最大值。例如,@Min(18)表示年龄不能小于18。
- @Size: 限制元素的数量,用于String、Collection、Map或数组。例如,@Size(min=2, max=50)限制字符串长度在2到50之间。
- @Pattern: 利用正则表达式进行字符串的格式检查,如电子邮件、电话号码格式等。
- @Email: 特定于电子邮件地址的格式验证,是@Pattern的一个特例,但在某些实现中可能提供更具体的错误消息。
- @Positive, @Negative, @PositiveOrZero, @NegativeOrZero: 限制数字为正数、负数或非负数、非正数。
- @Future, @Past: 分别用于日期和时间类型,确保日期在未来或过去。
- @AssertTrue, @AssertFalse: 用于布尔类型的字段或getter方法,确保其值为true或false。
- @DecimalMin, @DecimalMax: 对BigDecimal和BigInteger类型的字段进行最小值和最大值的限制,支持包含比较符号(如@DecimalMin(value=“1.0”, inclusive=false)表示大于1.0)。
- @Null: 标记字段必须为null。
- @Valid: 递归地对关联的对象进行验证,通常用于集合或对象类型的字段,以确保嵌套的bean也经过验证。
- @CreditCardNumber: 验证信用卡号的格式。
- @Digits: 用于整数和浮点数,确保数值的整数部分和小数部分不超过指定的位数。
这些注解可以组合使用,为JavaBean提供强大的数据验证功能。此外,你还可以自定义约束注解来满足特定需求,通过实现ConstraintValidator接口来定义约束的验证逻辑