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通过切面校验参数完整性的主要内容,如果未能解决你的问题,请参考以下文章