前言
最近刚到新公司接收项目,发现这里校验参数的没有做,纯硬编码的起判参数的值,想想自己都没怎么写博客,索性今天就来写一个校验框架都脚手架处理这类问题,主要是拓展spring-context都validate和javax.validation(不能分组校验),其实用javax也可以实现我这次写的内容,但是会不通用,对于每个业务校验都需要生成一个类,可能大家看到这里可能还不太懂请大家耐心往下面看,请恕我刚写博客不久,后面我也补充下spring的实现方式
目的
不知道大家在开发后端接口到时候,有没有遇到一些字典项前端传递过来后端还要请判断是否合法,现在写这篇博客就是为了处理这一类到问题
统一校验脚手架
springboot+spring aop+反射+自定义注解annotation
支持
常用到spring-context都validate和javax.validation到校验,@notNull、@min、@max等
使用案例
首先只需要把源码下载下来,如果想改包名或者自己优化下都也可以,在之后如果不是maven的直接导入jar即可,如果是maven可以上传的maven仓库上,在引入<dependency>
源码里有使用都例子在DemoContorller
example1:校验userName参数必填
@CheckParams(notNull = true) private String userName;
example2:校验age参数为数值
@CheckParams(numeric = true) private String age;
example3:校验phone参数非空、最小长度为1、最大长度为11
@CheckParams(notNull = true,minLen = 1,maxLen = 11) private String phone;
example4:校验userType参数合法性,值在UserTypeEnum枚举中
@CheckParams(enumsValue= UserTypeEnum.class) private String userType;//主要是完成这个功能
example5:此例子是用于保存接口不用传递id参数,但是修改接口需要传id,此处用分组校验来实现, 下面的意思是:分组为UserParam的id不能为空
@CheckParams(notNull = true,groups=UserParam.class) private String id;
javax实现方式
写到一半有活来了,后面在补充
未完待续...
github开源地址:https://github.com/609844066/project-validator/
后续看还有什么补充的也会在github上更新,随便写写的,还请路过的大神勿喷