一堆if/else 参数校验,就这么被 SpringBoot 参数校验组件整干净了

本文介绍了如何在SpringBoot中使用参数校验组件代替繁琐的if/else进行数据校验,包括添加相关依赖、验证Controller和Service输入、自定义Validator、使用验证组等,并给出了多个实战案例,适用于Java开发人员提升参数验证的优雅性和效率。
摘要由CSDN通过智能技术生成

数据的校验的重要性就不用说了,即使在前端对数据进行校验的情况下,我们还是要对传入后端的数据再进行一遍校验,避免用户绕过浏览器直接通过一些 HTTP 工具直接向后端请求一些违法数据。

最普通的做法就像下面这样。我们通过 if/else 语句对请求的每一个参数一一校验。

一坨一坨 if/else 参数校验,被 SpringBoot 参数校验组件整干净了

这样的代码,小伙伴们在日常开发中一定不少见,很多开源项目都是这样对请求入参做校验的。

但是,不太建议这样来写,这样的代码明显违背了 单一职责原则。大量的非业务代码混杂在业务代码中,非常难以维护,还会导致业务层代码冗杂!

实际上,我们是可以通过一些简单的手段对上面的代码进行改进的!这也是本文主要要介绍的内容!

废话不多说!下面我会结合自己在项目中的实际使用经验,通过实例程序演示如何在 SpringBoot 程序中优雅地的进行参数验证(普通的 Java 程序同样适用)。

不了解的朋友一定要好好看一下,学完马上就可以实践到项目上去。

并且,本文示例项目使用的是目前最新的 Spring Boot 版本 2.4.5!

添加相关依赖

如果开发普通 Java 程序的的话,你需要可能需要像下面这样依赖:

一坨一坨 if/else 参数校验,被 SpringBoot 参数校验组件整干净了

不过,相信大家都是使用的 Spring Boot 框架来做开发。

基于 Spring Boot 的话,就比较简单了,只需要给项目添加上 spring-boot-starter-web 依赖就够了,它的子依赖包含了我们所需要的东西。另外,我们的示例项目中还使用到了 Lombok。

一坨一坨 if/else 参数校验,被 SpringBoot 参数校验组件整干净了

一坨一坨 if/else 参数校验,被 SpringBoot 参数校验组件整干净了

但是!!!Spring Boot 2.3 1 之后,spring-boot-starter-validation 已经不包括在了 spring-boot-starter-web中,需要我们手动加上!

一坨一坨 if/else 参数校验,被 SpringBoot 参数校验组件整干净了

一坨一坨 if/else 参数校验,被 SpringBoot 参数校验组件整干净了


验证 Controller 的输入

验证请求体

验证请求体即使验证被 @RequestBody 注解标记的方法参数。

PersonContr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值