最近完成了一个后端项目,过程中遇到了一些难点和第一次遇到的BUG
分享一下,做个记录 ~~
文章目录
1、通过注解判断参数vo是否为空,并做全局异常处理
在开发中,controller层需要经常对vo参数进行格式判断,这样就可能在多个请求方法中出现格式判断,所以为了降低代码冗余,通过在注解来进行格式判断。
实现思路:添加依赖,在需要进行格式判断的类中添加判断注解,如果我们需要实现一些自己的判断,可以实现自定义注解。这样基本就已经实现完了,但是。还要考虑的就是,如果入参的格式不符合我们的要求,validation
就会抛出异常,为了友好的返回结果,我们就会做全局异常处理。
第一部分:格式验证
-
添加依赖
<!--validation验证依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
-
在入参时需要进行格式判断的类中添加判断注解
//我这里以一个模板入参类为样例(参考) //其中@IsMobile为自定义注解 @Data public class LoginVo { @NotNull //不能为空 @IsMobile //mobile格式判断(我们的自定义注解) private String mobile; @NotNull @Length(min = 32) //长度要求 private String password; }
-
实现自定义注解并注册到
validation
组件中/** * 验证手机号 * * @author thenie * @since 1.0.0 */ @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE }) @Retention(RUNTIME) @Documented @Constraint(validatedBy = { IsMobileValidator.class}) public @interface IsMobile { boolean required() default true; String message() default "手机号码格式错误"; Class<?>[] groups