Springboot通过切面校验参数完整性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot通过切面校验参数完整性相关的知识,希望对你有一定的参考价值。

参考技术A 写在前面:项目所有的HTTP请求参数均为JSON,故本文的校验方法也以此为基础,如果想要校验其他类型的参数,可根据实际情况修改。

依据上述response格式,定义JAVA实体类如下:

切面的要求是:JSON正确且参数完整时,继续执行添加了注解的方法,JSON不正确或参数不完整时,直接返回缺失的参数。因此切面必须使用注解@Around,通过proceedingJoinPoint获取请求参数(如果是@Before或者@After则是JoinPoint),之后先校验JSON合法性,再检查确实参数。

springboot中关于自定义注解校验

参考技术A 1.例如我想要校验某个入参是否是json字符串,假设我的自定义注解为 @JSONStringAnnotation ,并在某个bean中的 customFields 字段使用:

2.新建注解接口类:

3.新建具体的校验类:

以上就完成了对一个字段的自定义注解校验,是不是很简单,下面我们来看一下对类进行自定义校验,其实大部分也相同

1.将自定义注解加在需要校验的类上:

2.注解接口类

注意此注解是对类使用,@Target需要使用ElementType.TYPE
3.具体校验类

以上就完成了自定义的类校验,别忘了在controller方法上加上 @Valid
public int test(@RequestBody @Valid TestValid testValid)

捕获 MethodArgumentNotValidException 异常,获取错误信息,封装返回

以上是关于Springboot通过切面校验参数完整性的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务

springboot中关于自定义注解校验

springboot中如何在切面中重写请求参数

开发规范~参数校验异常异常返回提示切面

开发规范~参数校验异常异常返回提示切面

开发规范~参数校验异常异常返回提示切面