使用javax.validation.constraints进行数据验证

使用javax.validation.constraints进行数据验证

在这里插入图片描述

在Java应用中,数据的验证是一个很重要的部分,特别是在接收用户输入或处理外部数据时。为了简化和标准化数据验证的过程,Java提供了javax.validation.constraints包,其中包含一系列注解,用于对Java对象进行验证。本文将详细介绍javax.validation.constraints包中的一些常用注解的使用方式和作用。

@AssertTrue 和 @AssertFalse

@AssertTrue注解用于验证注解的目标字段或方法返回值必须为true,而@AssertFalse注解则要求值必须为false。

public class User {
    
    
    @AssertTrue(message = "用户必须同意协议")
    private boolean agreed;
}

@DecimalMin 和 @DecimalMax

如果字段是BigDecimal或BigInteger类型,我们可以使用@DecimalMin和@DecimalMax注解进行验证,指定数值的最小值和最大值。

public class Product {
    
    
    @DecimalMin(value = "0.01", message = "价格必须大于等于0.01")
    private BigDecimal price;
}

@Digits

@Digits注解用于验证注解的目标字段的值必须是数字,并且整数位数和小数位数不能超过指定的值。

public class Product {
    
    
    @Digits(integer = 3, fraction = 2, message = "价格格式无效")
    private BigDecimal price;
}

@Email

@Email注解用于验证注解的目标字段的值必须是一个合法的电子邮件地址。

public class User {
    
    
    @Email(message = "邮箱格式无效")
    private String email;
}

@Future 和 @FutureOrPresent

@Future注解用于验证注解的目标字段的值必须是一个将来的日期,而@FutureOrPresent注解要求值必须是一个将来的日期或当前日期。

public class Event {
    
    
    @Future(message = "事件日期必须是将来的日期")
    private LocalDate eventDate;
}

@Max 和 @Min

@Max注解用于验证注解的目标字段的值必须小于或等于指定的最大值,而@Min注解用于验证注解的目标字段的值必须大于或等于指定的最小值。

public class Product {
    
    
    @Max(value = 100, message = "数量不能超过100")
    private int quantity;

    @Min(value = 1, message = "数量不能小于1")
    private int minimumQuantity;
}

@NotBlank 和 @NotEmpty

@NotBlank注解用于验证注解的目标字段的值不能为空或空格,而@NotEmpty注解则要求值不能为空。

public class User {
    
    
    @NotBlank(message = "姓名不能为空")
    private String name;

    @NotEmpty(message = "地址不能为空")
    private String address;
}

@NotNull 和 @Null

@NotNull注解用于验证注解的目标字段的值不能为null,而@Null注解则要求值必须为null。

public class User {
    
    
    @NotNull(message = "用户名不能为空")
    private String username;

    @Null(message = "用户ID必须为空")
    private Long userId;
}

@Past 和 @PastOrPresent

@Past注解用于验证注解的目标字段的值必须是一个过去的日期,而@PastOrPresent注解要求值必须是一个过去的日期或当前日期。

public class Event {
    
    
    @Past(message = "事件日期必须是过去的日期")
    private LocalDate eventDate;
}

@Pattern

@Pattern注解使用正则表达式验证注解的目标字段的值必须符合指定的模式。

public class User {
    
    
    @Pattern(regexp = "\\d{4}-\\d{2}-\\d{2}", message = "日期格式无效")
    private String birthDate;
}

@Positive 和 @PositiveOrZero

@Positive注解用于验证注解的目标字段的值必须是正数,而@PositiveOrZero注解要求值必须是正数或零。

public class Product {
    
    
    @Positive(message = "价格必须是正数")
    private BigDecimal price;
}

@Size

@Size注解用于验证注解的目标字段的值的长度必须在指定范围内。它适用于字符串、集合和数组等类型。

public class User {
    
    
    @Size(min = 6, max = 20, message = "密码长度必须在6到20之间")
    private String password;
}

通过使用这些验证注解,我们可以方便地对Java对象进行数据验证,确保其合法性和完整性。合理使用这些注解可以减少错误,并增加代码的可靠性。

猜你喜欢

转载自blog.csdn.net/weixin_45626288/article/details/132037069