項目中有個需求:前后端參數一致性校驗,在某業務場景下后端代碼需要校驗參數個數,因此設計了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!