javax.validation常用注解

JavaBean属性验证:@NotNull,@NotEmpty等注解详解,
文章介绍了javax.validation提供的注解,如@NotNull、@NotEmpty、@NotBlank、@Size等,用于在JavaBean中对属性进行验证。这些注解用于确保数据的有效性和合规性,例如检查对象是否为null,字符串长度,数字范围等。开发者可以结合Validator进行数据验证,并在验证失败时获取错误信息。

javax.validation 提供了一系列的注解,用于在 Java Bean 中对属性进行验证,主要有以下几种:

  1. @NotNull:验证对象不可为 null;
  2. @NotEmpty:验证字符串,数组,Collection,Map不可为 null或者长度必须大于0,对于字符串不可以为"",但是可以为" ";
  3. @NotBlank:只能验证字符串且该字符串执行trim()方法(删除字符串头和尾的空字符)之后长度大于0也就是说"    "会报错;
  4. @Size:验证对象(数组、集合、Map、字符串等)的长度是否在指定的范围内;
  5. @Min:验证数字是否大于等于指定的值;
  6. @Max:验证数字是否小于等于指定的值;
  7. @DecimalMin:验证数字是否大于等于指定的值;
  8. @DecimalMax:验证数字是否小于等于指定的值;
  9. @Digits:验证数字是否符合指定的格式;
  10. @Past:验证日期是否在当前时间之前;
  11. @Future:验证日期是否在当前时间之后;
  12. @Pattern:验证字符串是否符合指定的正则表达式。

以上是一些常用的注解,还有一些其他的注解,可以根据具体需要进行使用。在实际开发中,我们可以将这些注解应用在 Java Bean 的属性上,然后使用 Validator 进行验证。如果验证失败,Validator 将会返回一个包含错误信息的集合。

`javax.validation.bootstrap` 是 Jakarta Bean Validation(原 Java Bean Validation,JSR 380 / JSR 303)框架中的一个包,用于启动和配置验证工厂(`ValidatorFactory`)的引导过程。它提供了构建和初始化 `ValidatorFactory` 的入口点,是使用 Bean Validation API 的第一步。 该包中最核心的接口是: ### `Validation` —— 引导类 这是一个工具类,提供静态方法来创建 `ValidatorFactory`。 #### Kotlin 示例: ```kotlin import javax.validation.Validation val validatorFactory = Validation.buildDefaultValidatorFactory() val validator = validatorFactory.validator ``` #### Java 示例: ```java import javax.validation.Validation; import javax.validation.ValidatorFactory; import javax.validation.Validator; ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); ``` --- ### 主要接口说明(在 `javax.validation.bootstrap` 包中) | 接口 | 用途 | |------|------| | `BootstrapConfiguration` | 表示引导配置,可从 `validation.xml` 读取配置信息 | | `Configuration<T>` | 配置验证工厂的行为(如消息解析器、约束校验器等) | | `Validation` | 工具类,用于启动验证工厂的构建过程 | | `ValidatorFactory` | 创建 `Validator` 实例的工厂 | --- ### 自定义配置示例(Java) ```java import javax.validation.Validation; import javax.validation.ValidatorFactory; import java.util.HashMap; import java.util.Map; Map<String, String> props = new HashMap<>(); props.put("hibernate.validator.fail_fast", "true"); // 快速失败模式 ValidatorFactory factory = Validation .byDefaultProvider() .configure() .addProperties(props) .buildValidatorFactory(); Validator validator = factory.getValidator(); ``` > 常见实现:Hibernate Validator(由 Red Hat 提供),它是 Bean Validation 规范的参考实现。 --- ### 注意事项 - 如果没有显式配置,`buildDefaultValidatorFactory()` 会尝试加载默认提供者(如 Hibernate Validator)。 - 配置文件 `META-INF/validation.xml` 可以影响引导行为。 - Android 上不建议直接使用 `javax.validation`,因为官方不支持且可能缺少运行时依赖;推荐使用第三方替代方案(如自定义注解 + Lint 或 kotlin 断言)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值