java实体类常用参数验证

java实体类常用参数验证:

javax.validation.constraints  包的作用
该包提供了一系列注解,用于在 Java 应用中实现?数据验证逻辑?,帮助开发者快速、声明式地定义数据约束规则。主要作用包括:

简化数据校验
通过注解直接标记字段或方法的约束条件(如非空、范围、格式等),避免手动编写重复的校验代码。

统一校验标准
为不同层级(如实体类、DTO、API请求参数)提供一致的校验机制,适用于前端表单、后端服务、数据库交互等场景。

与框架集成
广泛支持主流框架(如 Spring、Hibernate、Quarkus),可无缝集成到 REST API、JPA 实体、表单提交等流程中。

一、验证类型

1、‌@AssertFalse

@AssertFalse
private boolean isInactive; // 表示该字段必须为false,例如表示一个不活跃的状态。

2、‌@AssertTrue

@AssertTrue
private boolean isActive; // 表示该字段必须为true,例如表示一个活跃的状态。

3、@DecimalMax

该注解用于确保被注解的元素(通常为BigDecimalString类型,表示数字)的值小于或等于指定的最大值。

@DecimalMax("100.00")
private BigDecimal maximumValue; // 表示该字段的值必须小于或等于100.00。

4、@DecimalMin

该注解用于确保被注解的元素(通常为BigDecimalString类型,表示数字)的值大于或等于指定的最小值。

@DecimalMin("0.01")
private BigDecimal minimumValue; // 表示该字段的值必须大于或等于0.01。

5、@Digits

该注解用于确保被注解的元素(通常为BigDecimalBigIntegerStringbyteshortintlong的包装类)的值的位数在指定的整数位数和小数位数范围内。

@Digits(integer = 5, fraction = 2)
private BigDecimal preciseValue; // 表示该字段的整数部分最多5位,小数部分最多2位。

6、@Email

该注解用于确保被注解的元素(通常为String类型)的值是一个有效的电子邮件地址。

@Email
private String emailAddress; // 表示该字段必须是一个有效的电子邮件地址。

7、@Future

该注解用于确保被注解的元素(通常为DateCalendarjava.time包下的日期时间类型)的值在当前日期的未来。

@Future
private LocalDate futureDate; // 表示该字段的值必须是未来的一个日期。

8、@FutureOrPresent

该注解用于确保被注解的元素(日期时间类型)的值在当前日期或未来。

@FutureOrPresent
private LocalDateTime futureOrPresentDateTime; // 表示该字段的值必须是当前时间或未来的时间。

9、@Max 

该注解用于确保被注解的元素(通常为BigIntegerLongIntShortByte或它们的包装类以及String类型,表示数字)的值小于或等于指定的最大值。

@Max(100)
private int maxValue; // 表示该字段的值必须小于或等于100。

10、@Min

该注解用于确保被注解的元素(数字类型)的值大于或等于指定的最小值。

@Min(1)
private int minValue; // 表示该字段的值必须大于或等于1。

11、@Negative

该注解用于确保被注解的元素(数字类型)的值为负数。

@Negative
private int negativeValue; // 表示该字段的值必须为负数。

12、@NegativeOrZero

该注解用于验证数字是否为负数或零。如果注解的字段值是正数,则会触发验证失败。

  @NegativeOrZero
    private int temperature;

13、@NotBlank

该注解用于验证字符串是否非空且至少包含一个字符。它通常用于验证如名称、地址等字符串字段。

   @NotBlank
    private String address;

14、‌@NotEmpty

该注解用于验证集合、数组或字符串是否非空。它适用于各种集合类型以及字符串。

    @NotEmpty
    private List tags;

15、@NotNull

该注解用于验证对象是否不为 null。它适用于所有对象类型,确保字段被赋值。

    @NotNull
    private User user;

16、@Null

该注解用于验证对象是否为 null。它确保字段没有被赋值,适用于那些应该保持为空的字段。

    @Null
    private String temporaryField;//temporaryField 字段必须为 null。

17、‌@Past

该注解用于验证日期是否在现在之前。它适用于日期和时间类型的字段,确保日期是过去的某个时间点。

    @Past
    private Date startDate;

18、@PastOrPresent

该注解用于验证日期是否在现在之前或等于现在。它适用于需要确保日期不超过当前日期的场景。

    @PastOrPresent
    private Date eventDate;

19、@Pattern

该注解用于验证字符串是否匹配指定的正则表达式。它通常用于验证如电子邮件地址、电话号码等需要特定格式的字符串。

假设我们需要验证一个邮政编码,它必须是一个由5个数字组成的字符串。可以使用@Pattern注解如下:

@Pattern(regexp = "\\d{5}")
private String zipCode;

20、‌@Positive

该注解用于验证数字是否大于零。它通常用于确保数量、金额等字段的值是正数。

假设我们需要验证一个商品的数量,它必须是一个大于零的整数。可以使用@Positive注解如下:

@Positive
private int quantity;

21、‌@PositiveOrZero

该注解用于验证数字是否大于或等于零。它通常用于确保年龄、计数器等字段的值是非负数。

假设我们需要验证一个人的年龄,它必须是一个大于或等于零的整数。可以使用@PositiveOrZero注解如下:

@PositiveOrZero
private int age;

22、@Size

该注解用于验证集合、数组或字符串的大小是否在指定的范围内。它通常用于确保列表、数组等集合的长度符合特定要求。

假设我们需要验证一个标签列表,它的大小必须在1到10之间(包括1和10)。可以使用@Size注解如下:

@Size(min = 1, max = 10)
private List tags;


@Size(min=2, max=100) 
private String password;

二、验证方式‌
1、在 Spring Boot 中校验请求体:重要注解  @Valid

@PostMapping("/getUsers")
public ResponseEntity createUser(@Valid @RequestBody UserVO userVO) {
    // 校验通过后执行业务逻辑
}

2、POM引用

1)旧版本


    javax.validation
    validation-api
    2.0.1.Final


    org.hibernate.validator
    hibernate-validator
    6.2.5.Final

2)新版本 


    jakarta.validation
    jakarta.validation-api
    3.0.2

 推荐使用新版本。

你可能感兴趣的:(java相关,spring,boot相关,java,开发语言)