spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别
在Spring Boot中,参数验证是一个常见的需求。Spring提供了一些注解用于验证参数,如@NotNull、@NotBlank和@NotEmpty。以下是这些注解的区别:
- @NotNull: 验证注解的元素不为null。注解用于原始类型(如int, long等)、对象类型和String类型(可能为空)。
- @NotBlank: 验证注解的字符串不为null且trim()后不为空字符串。注解用于String类型,常用于验证表单输入。
- @NotEmpty: 验证注解的元素不为null且不为空。注解用于集合类型(可能为空或者有空元素)。
示例代码:
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
public class ExampleModel {
@NotNull
private Integer number;
@NotBlank
private String text;
@NotEmpty
private List<String> list;
// getters and setters
}
在这个例子中,如果number
为null或者text
为null或空字符串,或者list
为null或为空列表,则验证失败。如果number
是一个原始类型,它不能为null,但可以是0。对于text
,trim()后如果是空字符串,验证也会失败。对于list
,它必须不为null且至少包含一个非null的元素。
评论已关闭