1.背景
我们在编写后端接口的时候,往往会遇到这样的问题,某个属性不能为空,某个属性不允许为空,但能为空串等各种校验,我们虽然可以自己写if去判断,但似乎显得些许的麻烦,于是我们今天就来演练一下判空注解的使用
对于想看看整体流程的同学,可以跟着文章一步一步看,有基础的或者心急的小伙伴可以直接翻到小总结那里看额🤩
2.环境搭建
基础环境我已经搭建好了,我把目录放出来,各位看官一看便知
win环境下,tree /F 即可查看目录树和下面的文件
├─src
│ ├─main
│ │ ├─java
│ │ │ └─cn
│ │ │ └─blog
│ │ │ │ BlogValidDemoApplication.java
│ │ │ │
│ │ │ ├─controller
│ │ │ │ ValidController.java
│ │ │ │
│ │ │ └─entity
│ │ │ SaveUserParam.java
│ │ │
│ │ └─resources
│ │ application.properties
│ │ application.yml
3.没有添加校验注解的情况
我们先放下代码
SaveUserParam.java
import lombok.Data; /** * @Author tiancx * @create 2023/2/14 */ @Data public class SaveUserParam { /** * 用户姓名 不能为空 */ private String userName; /** * 性别 0:男 1:女 不能为空 */ private Integer sex; /** * 工号 不能为空 */ private Integer workNum; /** * 描述 不能为空,但允许为空串 */ private String desc; }
ValidController.java
import cn.blog.entity.SaveUserParam; import org.springframework.web.bind.annotation.*; /** * @Author tiancx * @create 2023/2/14 */ @RestController @RequestMapping("valid/v1") public class ValidController { @PostMapping("user") public String saveUser(@RequestBody SaveUserParam saveUserParam){ /** * 省略插入数据的逻辑处理,主要是学习如何使用@NotNull,@NotBank注解 */ return "保存成功"; } }
我们通过ApiFox调用接口测试
我们会发现这种情况下,接口是能够正常返回的
4.添加校验注解
我们添加注解
记得在Controller层的方法参数前加上@Valid注解
我们再次请求时,就会发现报错了,原因就是不能传空
我们现在传一个合法的参数
可以发现是请求成功的,恭喜完成😁
5.小总结
@NotNull 用在基本数据类型上(Integer,Long等),表示传的值不能为空,也可以用在String类型上,表示可以传空串(本例子中有用到额,你发现了么ლ(′◉❥◉`ლ))
@NotBlank 用在String上,表示穿的值不能为空,空串也不行
=😍😍😍=
哈哈哈,看了是不是感觉可以直接拿下了😎
这些小技巧在工作中合理用到的话(尤其是以前不知道的老板),还担心工作完不成吗?效率倍儿提升🥰
今天2月14号,刚好也是情人节,早早写完代码回去😍,哈哈哈