优雅校验参数之@NotNull、@NotEmpty、@NotBlank

优雅校验参数之@NotNull、@NotEmpty、@NotBlank

首先说明三个注解的区别:

注解作用数据类型(一般情况下)
@NotNull不能为null,可以为empty(也就是可以为"")Integer、Long、BigDecimal、Date
(可以使用@size、@Max、@Min、@Range对Integer进行限制)
@NotEmpty不能为null,且长度必须大于0集合、数组
@NotBlank不为null,只作用于String上,且调用trim()后长度必须大于0,即必须有实际的字符String(可以使用@Length对长度进行限制)

用法:

  1. 实体类的属性值上写上对应的参数校验注解

    public class UserRegisterDto implements Serializable {
        @NotBlank(message = "电话号码不可为空")
        @Schema(description = "电话号码", required = true)
        private String phone;
    
        @NotNull(message = "登录渠道不可为空")
        @Schema(description = "登录渠道", required = true)
        private Integer channel;
    }
    
  2. 对应的controller上添加@@Valid注解

    public class UserRegisterController {
    
        @PostMapping("/register")
        @Operation(summary = "c端用户注册接口", description = "c端注册")
        public HttpResult<UserInfo> register(@RequestBody @Valid UserRegisterDto dto) {
    		// TODO do something
            return HttpResult.success(userInfo);
        }
    
    }
    

**注意:**如果对应的类型写错了会报一下的错误。我这边是在channel字段上(Integer类型)上写了@NotEmpty,导致了下面的报错。改成@NotNull就没问题啦

HV000030: No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'java.lang.Integer'. Check configuration for 'channel'
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值