Spring中@NotEmpty、@NotBlank、@NotNull 的区别和使用

1、引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>


@NotEmpty@NotBlank@NotNull 包的位置:import javax.validation.constraints.*;


2、区别

适用于基本数据类型(Integer,Long,Double等等),当 @NotNull 注解被使用在 String
类型的数据上,则表示该数据不能为 Null(但是可以为 Empty)

注:被其标注的字段可以使用 @size、@Max、@Min 对字段数值进行大小的控制

@NotBlank 适用于 String 类型的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后size> 0,必须有实际字符

@NotEmpty 适用于 String、Collection集合、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null
或者 长度为 0

3、使用方法

@Data
public class BigPeople {
    @ApiModelProperty(value = "id" ,required = true)
    @NotNull(message = "id不能为空")
    @Length(message = "id不能超过{max}个长度",max = 10)
    private Integer id;
 
    @ApiModelProperty(value = "name" ,required = true)
    @NotBlank(message = "name不能为空")
    @Size(message = "名字最长为{max} 个字",max = 10)
    private String name;
 
    @ApiModelProperty(value = "age" ,required = true)
    @NotNull(message = "id不能为空")
    @Range(message = "age的长度范围为{min}岁到{max}岁之间",min = 5,max = 10)
    private Integer age;
 
    @ApiModelProperty(value = "treeNode" ,required = true)
    @NotEmpty(message = "treeNode不能为空")
    private List<String> treeNode;
    
}

@Valid 包位置:

import javax.validation.Valid;

@Validated 包的位置

import org.springframework.validation.annotation.Validated;
@ApiOperation(value = "新增或者修改一个人的信息")
@PostMapping("/updateOrInsert")
public Result updateOrInsert(@Valid @RequestBody  Person person){
    Boolean updateOrInsert = personService.updateOrInsert(person);
    if (updateOrInsert) {
        return new Result(ResultCode.SUCCESS,updateOrInsert);
    }
   return new Result(ResultCode.ERROR, "新增或者修改一个人的信息失败");
}

@ApiOperation(value = "新增或者修改一个人的信息")
@PostMapping("/updateOrInsert")
public Result updateOrInsert(@Validated @RequestBody  Person person){
    Boolean updateOrInsert = personService.updateOrInsert(person);
    if (updateOrInsert) {
        return new Result(ResultCode.SUCCESS,updateOrInsert);
    }
   return new Result(ResultCode.ERROR, "新增或者修改一个人的信息失败");
}

最上面三个注释:必须需要搭配@Valid 或者@Validated使用,在检验Controller的入参是否符合规范时

@Valid 和 @Validated 比较

最后我们来对 @Valid 和 @Validated 两个注解进行总结下:

1:@Valid 和 @Validated 两者都可以对数据进行校验,待校验字段上打的规则注解(@NotNull,
@NotEmpty等)都可以对 @Valid 和 @Validated 生效;

2:@Valid 进行校验的时候,需要用 BindingResult 来做一个校验结果接收。当校验不通过的时候,如果手动不 return
,则并不会阻止程序的执行;

3:@Validated
进行校验的时候,当校验不通过的时候,程序会抛出400异常,阻止方法中的代码执行,这时需要再写一个全局校验异常捕获处理类,然后返回校验提示。

4:总体来说,@Validated 使用起来要比 @Valid 方便一些,它可以帮我们节省一定的代码,并且使得方法看上去更加的简洁。

此包下其它常用的校验注解:

在这里插入图片描述

我家老洋
关注 关注
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring注解 @NotBlank,@NotNull,@NotEmpty三者之间的区别
荒的博客
03-09 236
简述三者区别 @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0)。 @NotEmpty://CharSequence, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。 @NotBlank://String 不能是 null 且去除两端空白字符后的长度(trimmed length)大于 0。 实例 String name = null; @
面试官:说说Spring@NotEmpty、@NotBlank、@NotNull区别使用
xuxu96
01-23 452
1:@Valid 和 @Validated 两者都可以对数据进行校验,待校验字段上打的规则注解(@NotNull, @NotEmpty等)都可以对 @Valid 和 @Validated 生效;3:@Validated 进行校验的时候,当校验不通过的时候,程序会抛出400异常,阻止方法的代码执行,这时需要再写一个全局校验异常捕获处理类,然后返回校验提示。4:总体来说,@Validated 使用起来要比 @Valid 方便一些,它可以帮我们节省一定的代码,并且使得方法看上去更加的简洁。
@NotEmpty,@NotNull和@NotBlank的区别
weixin_34096182的博客
08-09 98
1@NotEmpty :不能为null,且Size>02 @NotNull:不能为null,但可以为empty,没有Size的约束3 @NotBlank:只用于String,不能为null且trim()之后size>0 转载于:https://www.cnblogs.com/stxyg/p/5752997.html...
@NotNull、@NotEmpty 和 @NotBlank 区别使用
最新发布
weixin_36515035的博客
08-15 70
@NotNull、@NotEmpty 和 @NotBlank 是 Java Bean Validation (JSR 380)规范定义的注解,通常用于验证对象的属性是否满足特定的条件。这些注解常用于后端验证,确保接收到的数据符合预期。@NotEmpty用途:验证一个对象是否不为null。注意:它只能验证对象本身是否为nu...
@NotNull、@NotEmpty 和 @NotBlank 区别
lw的博客
07-24 510
NotNull、@NotEmpty 和 @NotBlank 是 Java Bean Validation (JSR 380)规范定义的注解,通常用于验证对象的属性是否满足特定的条件。这些注解常用于后端验证,确保接收到的数据符合预期。
@NotEmpty和@NotBlank和@NotNull
weixin_42590334的博客
05-24 7082
@NotEmpty、@NotBlank和、@NotNull都来自于包org.hibernate.validator.constraints.* @NotNull:不能为null,但可以为empty,用在基本类型上 @NotEmpty:不能为null,而且长度必须大于0,用在集合类上面 @NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0 注意:在使...
Spring @NotEmpty、@NotBlank、@NotNull,傻傻分不清楚!
05-22 438
点击关注公众号,Java干货及时送达????1:引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.0.5.RELEAS...
@NotEmpty、@NotBlank、@NotNull区别
09-01
Java编程语言,校验框架如Hibernate Validator提供了多种注解来确保数据的正确性,其`@NotEmpty`、`@NotBlank`和`@NotNull`是三个常用的注解,它们各自有不同的用途和适用场景。 1. **@NotEmpty** `@Not...
@NotEmpty、@NotBlank等注解的正确使用 @Validated和@Valid的区别 解决@NotBlank等注解不生效的问题 使用BindingResult进行接口请求参数的统一校验
念兮为美
08-11 6347
本文带你了解如何正确地使用@NotEmpty、@NotBlank等注解、@Validated和@Valid的区别、解决@NotBlank等注解不生效的问题、使用BindingResult进行(controller)接口请求参数的统一校验。 为什么使用注解呢?因为服务端通常将`controller层`作为调用的第一层,因而参数校验常常在这里完成。假如在controller层的某个方法,有很多个需要校验的请求参数,这样写无疑会有多条if判断语句,因而,我们需要使用优雅的方式处理接口请求参数。......
springmvc参数校验:@NotEmpty、@NotBlank和@NotNull
开发备忘
09-05 7862
springmvc参数基本非空校验:@NotEmpty、@NotBlank和@NotNull
@NotBlank与@NotNull等注解失效的解决办法
qq_55253420的博客
01-29 2398
@NotBlank与@NotNull等注解失效的解决办法
notBlank 和 notEmpty
qq_40813329的博客
07-01 2567
commons-lang 官方文档 isEmpty isNotEmpty() StringUtils.isAnyEmpty() isNoneEmpty() isBank系列 isBlank() 是否为真空值(空格或者空值) isNotBlank() isAnyBlank() isNoneBlank() 其他方法
@NotNull、@NotEmpty和@NotBlank区别
hold_on_的博客
03-22 211
@NotNull 主要用在基本类型上,不能为null @NotEmpty 主要用在集合类上面,不能为null,并且长度必须大于0 @NotBlank 只可以用在String上面,只能作用在String上,不能为null,而且调用trim()后,长度必须大于0 看下边这个例子就很好理解了: 1.String name = null; @NotNull: false @NotEmpty:f...
@NotEmpty和@NotBlank以及@NotNull区别
weixin_45484316的博客
07-07 213
@NotEmpty 用在集合类上面,验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) @NotBlank 用在String上面,验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 @NotNull 用在基本类型上,限制必须不为null ...
@NotEmpty、@NotBlank、@NotNull三种注解的区别
sunyingboaini的博客
04-08 1614
@NotEmpty、@NotBlank、@NotNull三种注解的区别
@NotNull,@NotEmpty和@NotBlank使用区别
FeiChangWuRao的博客
05-06 1830
实际上关于参数校验我们经常会遇到@NotNull,@NotEmpty和@NotBlank,几乎涉及到校验的工具包都会有它们的身影不管是Hibernate工具包还是Apache的校验工具包或者其他常用的工具包都会出现,有时候感觉这几个是差不多可以互相替换的。那他们具体的使用场景和区别是什么呢? 一 校验要求 NotNull NotNull不能为null,但可以为empty,没有Size的约束,比如说 ArrayList list = new ArrayList(); 这个list它不是null但size为0
@NotNull, @NotEmpty和@NotBlank
05-13
这三个注解都是用来对方法参数、返回值、字段等进行非空校验的。 @NotNull: 表示被注解的元素不能为 ...在 Spring Boot ,如果使用了这些注解,当参数校验不通过时,会抛出 MethodArgumentNotValidException 异常。
92
原创
223
点赞
330
收藏
98
粉丝
关注
私信
写文章

热门文章

  • Nacos 中 DataId配置信息 13445
  • Objects.equals 10649
  • idea无法下载源码Sources not found for:org.springframework 9362
  • com.netflix.client.ClientException: Load balancer does not have available server for clien 8960
  • 启动配置服务提示Could not resolve placeholder ‘config‘ in value “${config}解决 5866

最新评论

  • mysql char 与 varchar 的区别

    小钟不想敲代码: 感谢博主的优质好文,文章细节很到位,兼顾实用性和可操作性,感谢博主的分享,期待博主持续带来更多好文!

  • PostMan 模拟并发密集访问

    weixin_44561100: 循环20次被你说成是20个线程。。

  • Objects.equals

    yadong_cfan: 有帮助,之前确实没注意这个问题,感谢

  • Objects.equals

    dd798922110: 谢谢,很有用

  • int(1) 和 int(10)区别

    扎克风暴: 不就可以表示序号,某些业务场景可以用

最新文章

  • 连接服务器mysql 1130- Host ‘1.203.173.72‘ is not allowed to connect to this MySQL server
  • isEmpty 和 isBlank 的用法区别
  • MySQL 如何优化DISTINCT问题描述
2024年17篇
2023年14篇
2022年12篇
2021年27篇
2020年32篇
2019年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家好用的玻璃钢雕塑厂玻璃钢雕塑供应免费咨询玻璃钢花盆好评语大兴区玻璃钢雕塑汕尾公园玻璃钢雕塑江苏节庆商场美陈怎么样山东商场主题创意商业美陈公司金昌大型玻璃钢雕塑焦作玻璃钢雕塑制作衢州商场开业美陈公园玻璃钢雕塑供应商家湖南潇湘玻璃钢景观雕塑玻璃钢装饰雕塑定做云浮玻璃钢雕塑批发新疆乌鲁木齐玻璃钢雕塑北关玻璃钢雕塑厂家玻璃钢雕塑雕塑厂家小型玻璃钢雕塑视频长沙玻璃钢卡通雕塑订做湖南展会玻璃钢雕塑定制深圳人物玻璃钢雕塑市场云南玻璃钢雕塑仿真牛内蒙玻璃钢雕塑订做优质的大型玻璃钢雕塑商场商户美陈制定标准深圳超市商场美陈销售公司虹口区玻璃钢雕塑厂家报价上海商场节庆美陈雕塑摆件定制舟山玻璃钢广场雕塑厂家阿里玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化