Spring Validation 校验 ( 一 )

Spring Validation 是 Spring Framework 的一部分,它提供了一种简单的方式来验证 Java 对象的数据。Spring Validation 基于 JSR 303/JSR 349(也称为 Bean Validation)规范,允许开发者使用注解来定义对象的约束条件,从而简化了验证逻辑的编写。

1.导入依赖

    <!-- Spring Boot Starter Web  依赖web环境 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot Starter Validation -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>8.0.1.Final</version>
    </dependency>

spring-boot-starter-validationhibernate-validator 在 Spring Boot 中扮演着不同的角色,但它们紧密相关。下面是两者之间的主要区别:

  • spring-boot-starter-validation 提供了 Spring Boot 中 Bean Validation 的自动配置和支持。它还提供了对 Spring MVC 控制器中验证的支持,例如通过 @Valid@Validated 注解来验证请求体和方法参数。
  • hibernate-validator 是一个具体的 Bean Validation 实现,它提供了验证逻辑和标准的验证注解。它提供了所有标准的验证注解(如 @NotNull, @Size, @Pattern 等)的实现。支持创建自定义验证注解和相应的验证器实现。
  • 通常情况下,只需要添加 spring-boot-starter-validation 即可,因为它会自动包含 Hibernate Validator 或其他 Bean Validation 实现。

2.标准注解

2.1.常用注解

  1. @Null : 指定字段必须为 null
  2. @NotNull : 指定字段不得为 null
  3. @NotBlank : 指定字符串必须不为空,且不全是空白字符。
  4. @NotEmpty : 指定字符串、数组、集合、Map 或其他可迭代类型必须不为空。
  5. @AssertFalse : 指定布尔值必须为 false
  6. @AssertTrue : 指定布尔值必须为 true
  7. @Min(value) : 指定数值必须大于等于指定的最小值。
  8. @Max(value) : 指定数值必须小于等于指定的最大值。
  9. @DecimalMin(value) : 指定数值必须大于等于指定的小数值。
  10. @DecimalMax(value) : 指定数值必须小于等于指定的小数值。
  11. @Size(min, max) : 指定字符串、数组、集合、Map 或其他可迭代类型的元素数量必须在指定范围内。
  12. @Digits(integer, fraction) : 指定数值的整数部分和小数部分的最大位数。
  13. @Past : 指定日期必须在过去。
  14. @Future : 指定日期必须在未来。
  15. @PastOrPresent : 指定日期必须在过去或现在。
  16. @FutureOrPresent : 指定日期必须在未来或现在。
  17. @Pattern(regexp) : 指定字符串必须匹配指定的正则表达式。
  18. @Positive : 指定数值必须大于 0。
  19. @PositiveOrZero : 指定数值必须大于等于 0。
  20. @Negative : 指定数值必须小于 0。
  21. @NegativeOrZero : 指定数值必须小于等于 0。
  22. @Email : 指定字符串必须是有效的电子邮件地址。
  23. @URL(protocol, host, port) : 指定字符串必须是有效的 URL。
  24. @CreditCardNumber : 指定字符串必须是有效的信用卡号码。
  25. @Length(min, max) : 指定字符串长度必须在指定范围内。
  26. @Range(min, max) : 指定数值必须在指定范围内。

2.2.使用案例

  1. 定义验证规则。

  2. 使用 @Valid 注解来验证控制器方法的参数。

  3. 处理验证错误。

  4. 实现额外的逻辑,如检查用户名是否唯一。

2.2.1.创建 Use
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值