引言:
在日常开发中,参数校验是必不可少的环节,前端界面带 * 的都是必须要传的参数(如图),也是我们必须要检验的参数,如果使用大量的if else做判断不仅会对性能造成影响,而且代码量多的时候也不利于后期维护;
优化方法:
使用注解的方式做参数检验;
使用方法:
1.在接收数据的类中加注解
2.在接口的参数前加注解
常用的注解有
-
@NotBlank,针对的是String类型
-
@NotNull,针对的是对象类型(自定义的对象)
-
@NotEmpty,针对的是集合:List、Set
注意
⚠️:一般进行修改和新增的时候传的类是相同的,区别在于:修改是根据id进行修改,故还需要对这个id进行校验,而新增不需要,所以这种情况下需要区分哪些参数需要检验,哪些参数不需要检验!
这种情况下就要用到一个属性:group:对要校验的字段进行分组;
其中Add.class和Update.class,只是一个接口,可以单独写在一个包下,
public interface Add { } public interface update { }
嵌套对象的数据校验
嵌套对象是指对象里面存在别的对象,比如文件里面包含着文件名称和文件路径,那么子属性也需要进行数据检验;
这种情况下用@Valid,首先将@Valid加在对象本身上:
@Valid private TestForm file;
然后在子对象上加
@NotBlank(message = "描述不能为空", groups = {Add.class, Update.class}) private String fileName; @NotBlank(message = "描述不能为空", groups = {Add.class, Update.class}) private String fileUrl;
逻辑校验
查询完数据库之后,首先应该对查询结果做校验,判断结果是否为空!