第十九篇:轻松搞定数据验证(一)

是为了简化 应用的创建、运行、调试、部署等一系列问题而诞生的产物,

对于任何一个应用而言,客户端做的数据有效性验证都不是安全有效的,,这时候就要求我们在服务端接收到数据的时候也对数据的有效性进行验证。为什么这么说呢?往往我们在编写程序的时候都会感觉后台的验证无关紧要,毕竟客户端已经做过验证了,后端没必要在浪费资源对数据进行验证了,但恰恰是这种思维最为容易被别人钻空子。毕竟只要有点开发经验的都知道,我们完全可以模拟 请求到后台地址,模拟请求过程中发送一些涉及系统安全的数据到后台,后果可想而知....

为什么要轻松搞定?

相信通过上面的阅读,大家对数据验证的重要性有了一定的了解,那么为什么我这里要说

下面这段代码很多人一定见到过,就是对参数进行有效性校验,但仔细观察的话就会发现;

本章目标

通过 完成参数后台数据校验,轻松搞定数据有效性验证,留出更多的时间来和小姐姐聊天...

具体代码

通过上面的阅读大家也大致能了解到为啥需要对异常进行全局捕获了,接下来就看看 提供的解决方案

导入依赖

在 中添加上 的依赖即可

JSR-303 注释介绍

这里只列举了 包下的注解,同理在 包中也存在 验证包,里面包含了一些 没有的注解,有兴趣的可以看看

实体类

为了体现 的强大,分别演示普通参数属性验证与对象的验证

控制层

与前面的代码相比,新的代码中仅仅多了几个注解而已。(此处只是为了图方便写在了 Controller 层,同理你可以将它作用在 Service 层)

注解介绍

开启数据有效性校验,添加在类上即为验证方法,添加在方法参数中即为验证参数对象。(添加在方法上无效)

被注释的字符串不允许为空( )

被注释的字符串的大小必须在指定的范围内

被注释的字段不允许为空( )

被注释的字段必须大于或等于指定的数值

主函数

测试

完成准备事项后,启动 自行测试即可,测试手段相信大伙都不陌生了,如 、 、 、 ,此处基于 ,如果你觉得自带的异常信息不够友好,那么配上一起来学SpringBoot | 第十八篇:轻松搞定全局异常 可以轻松搞定...

test2接口(name参数没传)

test3接口(price参数值过低)

总结

目前很多大佬都写过关于的教程了,如有雷同,请多多包涵,本教程基于最新的 编写,包括新版本的特性都会一起介绍...

说点什么

个人QQ:1837307557

battcn开源群(适合新手):391619659

微信公众号(欢迎调戏):

全文代码:https://github.com/battcn/spring-boot2-learning/tree/master/chapter18

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180606G08FAV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券