Java参数校验@Valid中@Length和@Size的用法和区别
@Valid
注解通常用于结合 Hibernate Validator 实现参数的验证。在 Java 后端开发中,常用的参数验证注解有 @NotNull
、@NotEmpty
、@Size
等。而 @Length
和 @Size
都是用来限制字符串长度的,但它们之间有一些区别:
@Size
注解通常用于集合类型(如 List、Set、Map)和数组类型的验证,它可以指定集合或数组的最小和最大元素数量。@Length
注解一般用于字符串的验证,它可以指定字符串的最小和最大长度。
下面是使用 @Size
和 @Length
的例子:
import javax.validation.constraints.Size;
import javax.validation.constraints.NotEmpty;
import org.hibernate.validator.constraints.Length;
public class ExampleEntity {
@NotEmpty
@Size(min = 1, max = 10) // 适用于集合或数组
private List<String> items;
@Length(min = 5, max = 20) // 适用于字符串
private String name;
// getters and setters
}
在这个例子中,items
是一个字符串列表,我们使用 @Size
注解来确保列表不为空并且其长度在 1 到 10 之间。而 name
是一个字符串,我们使用 @Length
注解来确保字符串的长度在 5 到 20 个字符之间。
评论已关闭