SpringBoot 注解@NotBlank、@NotNull、@NotEmpty的区别以及用法

 

@NotNull 验证对象是否不为null, 无法查检长度为0的字符串.
@NotBlank 检查约束 (字符串) 是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查(集合)约束元素是否为NULL或者是EMPTY.

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DepartmentDto extends BaseDto {

    @NotBlank(message = "部门名称不能为空!")
    private String departmentName;

    @NotEmpty(message = "所属单位不能为空!")
    private String belongCompany;

    private String superDepartment;

    @NotNull(message = "上级部门id不能为null")
    private String superId;
}

注意在使用@NotBlank等注解时,一定要和@valid一起使用,不然他们将不起什么作用,就纯是一个注解了。

@PostMapping("add_department")
@ApiOperation(value = "添加部门")
public BaseResponse addDepartment(@Valid DepartmentDto departmentDto, BindingResult bindingResult) {
    if(bindingResult.hasErrors()){
        return BaseResponse.builder().code(ResultCode.FAILURE)
                .message(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()).build();
    }
    Boolean depart = departmentService.addDepartment(departmentDto);
    if (depart) {
        return BaseResponse.builder().code(ResultCode.SUCCESS).message("添加成功!").build();
    } else {
        return BaseResponse.builder().code(ResultCode.FAILURE).message("添加失败!").build();
    }
}
@NotBlank测试样例

SpringBoot 注解@NotBlank、@NotNull、@NotEmpty的区别以及用法

@NotEmpty测试样例

SpringBoot 注解@NotBlank、@NotNull、@NotEmpty的区别以及用法

@NotNull测试样例(可以为空字符串)

SpringBoot 注解@NotBlank、@NotNull、@NotEmpty的区别以及用法

 

 总结:  1.注意注解引用的包

            import javax.validation.constraints.NotBlank;
            import javax.validation.constraints.NotEmpty;
            import javax.validation.constraints.NotNull;

   2. @NotEmpty 用在集合类上面更适合,我这里就直接用在了字符串上面
    @NotBlank 用在String上面
    @NotNull    用在基本类型上