项目中有个需求:前后端参数一致性校验,在某业务场景下后端代码需要校验参数个数,因此设计了1个工具类方便大伙使用,特此简单记录下。
校验参数个数工具类
- 一、校验工具类CheckNumInsideParamters
- 二、单元测试ParameterSizeTest
- 三、测试验证
- 1.字符串参数个数校验
- 2.列表参数个数校验
- 四、项目结构及源码
- 1.项目结构
- 2.源码下载
一、校验工具类CheckNumInsideParamters
/*** 校验参数字符串和列表个数** @DATE 2024/6/6**/
public class CheckNumInsideParamters {/*** 校验字符串列表参数个数** @param parameters 参数*/public static void checkInsideList(List<?>... parameters) {for (List<?> parameter : parameters) {checkInsideListParameter(parameter, null, 0);}}/*** 校验字符串个数** @param parameters 参数*/public static void checkInsideStr(String... parameters) {for (String parameter : parameters) {checkInsideListParameter(parameter, QueryParameterSizeConstant.SEMICOLON, 0);}}/*** 参数个数校验* 如果是列表,则customLimit表示其长度* 如果是字符串,则customLimit表示其通过分隔符strDelimiterr切分后的列表长度* (如果strDelimiterr为空,则customLimit表示字符串长度)** @param parameter 参数* @param strDelimiterr 分隔符* @param customLimit 自定义阈值长度*/public static void checkInsideListParameter(Object parameter, String strDelimiterr, int customLimit) {int limit = customLimit > 0 ? customLimit : QueryParameterSizeConstant.DEFAULT_SIZE;if (parameter instanceof List && ((List<?>) parameter).size() > limit) {// 根据业务需要,这里抛出自定义异常System.out.println("list exceed limit error");} else if (parameter instanceof String) {if (StringUtils.isNotBlank(strDelimiterr) &&((String) parameter).split(strDelimiterr, limit + 1).length > limit) {System.out.println("str exceed limit error");} else if (((String) parameter).length() > limit) {System.out.println("str exceed limit error");}}}
}
二、单元测试ParameterSizeTest
/*** 参数校验测试类** @DATE 2024/6/6**/
@SpringBootTest
public class ParameterSizeTest {// 字符串参数个数校验@Testpublic void strTest() {String str = "zhangsanfeng0;zhangsanfeng1;zhangsanfeng2;zhangsanfeng3;";CheckNumInsideParamters.checkInsideStr(str);}// 列表参数个数校验@Testpublic void listTest() {List<String> list = new ArrayList<>();list.add("zhangsanfeng0");list.add("zhangsanfeng1");list.add("zhangsanfeng2");list.add("zhangsanfeng3");CheckNumInsideParamters.checkInsideList(list);}
}
三、测试验证
1.字符串参数个数校验
2.列表参数个数校验
四、项目结构及源码
1.项目结构
2.源码下载
demo-springboot-mybatisplus
欢迎star!