Spring Boot 回顾(七):告别臃肿的字段校验--

这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战

前言

在我们Spring Boot开发项目过程中,往往可以通过使用一些注解,让我们的代码看上去更加地优雅且高效,接下来的系类更文将介绍一些这样的注解给大家。

@Valid

大家在写业务代码时一定都有遇到需要对前端传来的参数进行校验的场景。虽然说一般前端都会在页面输入时进行了一次校验,但是为了保证功能的健壮性,后端这边在接收到前端参数时需要再次进行校验。如果只是一两个参数还好,写起来简单,一般几个if判断就行了,代码看上去还是很简洁的。但是遇到有十几个参数的表单提交过来,每个都写上一个if校验,恐怕代码review时技术经理的脸色要扭曲了吧。下面我们了解下@Valid注解,看看它是如何帮助我们消去这些臃肿的校验的。首先,我们在项目中引入相关依赖

1
2
3
4
5
6
7
8
9
10
11
java复制代码<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>

然后就能在项目中愉快的使用相关校验的注解了

1
2
3
4
5
6
7
8
9
10
11
12
13
java复制代码/**
* 链名称
*/
@NotBlank(message = "{required}")
@Size(max = 100, message = "{noMoreThan}")
private String chainName;

/**
* 链id
*/
@NotBlank(message = "{required}")
@Size(max = 100, message = "{noMoreThan}")
private String chainId;

可以看到,我们在字段上加入了@NotBlank@Size,分别进行了非空和字段长度的校验。最后,我们在controller中加上@valid来使校验生效。

image.png
写完这些,是不是感觉整个代码清爽了很多,再也不用写令人头疼的if校验了。
当然@valid中支持相当多的字段校验逻辑,我们简单了解下

注解名称 含义
@NotBlan 必须不能为空
@Size 长度校验,里面可以加入max、min
@URL 必须是一个URL
@Email 必须是格式正确的电子邮箱地址
@Pattern 符合指定的正则表达式
更多内容可以看下jar包里已有的注解

image.png

总结

通过这样一个简单的注解,可以让我们的代码看起来更加的简洁,也让校验逻辑更加清晰。所以我们写功能时,可以多思考如何用更少的代码来实现,避免臃肿的代码堆砌在项目中。

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%