毕设利器,教你从零搭建一个有规范的spring boot项目【四】——参数校验

接上篇毕设利器,教你从零搭建一个有规范的spring boot项目【三】—— 返回结果的处理和统一异常处理

我现在想新增一个用户。

写好了代码如下:

在这里插入图片描述

可以看到我做了名字不能为空的参数校验。

参数校验这个是一定要做的,鬼知道别人会调用你的接口给你些什么数据。

但真要做起来,其实还是要费不少功夫的。

我上面这个demo还好,只有一个参数,万一参数多起来了,难道要像下面这样嘛?

在这里插入图片描述

想想还真有点累。

不好意思,上面的代码打错了,应该是StringUtils.isBlank(userVO.getName())才对,不过意思表达到位了即可,大家不要在意,其实是懒得再重新截图哈哈哈哈哈。

还是找点简单的方法吧。

这样的方法自然早就有人给你写好啦。

引入下面的依赖:

<!-- 参数校验 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

引入进来之后,在接受参数的类中做如下注解:

在这里插入图片描述

作用其实看名字和message都可以看出来,这里不多做赘述。

然后在接受参数的时候加上@Valid注解即可做校验。
在这里插入图片描述
@RequestBody注解之后再说明。

这样,可以回去删掉之前的校验代码。

现在代码变成如下这样:
在这里插入图片描述

我们就可以不用费劲写太多校验代码了,更多地专注业务逻辑的代码。

但是有些不那么通用的校验还是要自己写才行。

运行项目。

因为是post,不能直接用浏览器调用接口,用接口调试工具试试。

在这里插入图片描述
调试结果如下:
在这里插入图片描述
输入符合规范的数据,再调一次接口:
在这里插入图片描述
可以看到接口返回调用成功的数据:
在这里插入图片描述
数据库也有了数据:
在这里插入图片描述
参数校验其实就这么简单,本来就是用来节省大部分重复工作的,提出来的方案自然是越简单越好

接下来说说@RequestBody注解。

@RequestBody是用来配合post和put请求的。

如果你用的@GetMapping注解,再在参数那里加这个注解,是会报错的。

当然加了@RequestBody的注解,前端的请求方式也要有所改变,请求方式要注明dataType: application/json。

具体你可以看我的这篇文章《SpringBoot同时接收单个对象和List<object>参数》

之前的get请求,要求你把参数带在url后面,比如localhost:8080/user?id=1这样,就是查询id为1的用户。这种请求带过去的参数是明文的,并且还有长度限制。

但post请求+@RequestBody注解,会把参数放在下面这里。

在这里插入图片描述

图中的请求,换成get也行,不过就会变成xxx.com/login?account=admin&password=123456&type=1。这样你的密码就明晃晃地出现在浏览器的地址栏上了。

登录,或者参数比较多,或者新增、编辑某些信息的时候多数用这种方式。

1是稍微安全点,总比你登陆一下账号密码都写在url上,让别人一下就看到好。

2是长度足够,get请求的长度是有限制的。

有什么问题可以留言,看到了都会尽量帮忙解决。


2021-10-02更新,下一篇在这里:《毕设利器,教你从零搭建一个有规范的spring boot项目【五】——用户身份信息验证》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TandK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值