当前位置: 首页 > wzjs >正文

网站开发的调研内容标签云 wordpress

网站开发的调研内容,标签云 wordpress,个人网站怎么做淘宝客,北京地产网站建设业务背景:上传excel文件进行基础数据校验,然而东西太多写着写着就...自然成了测试的KPI了 解决思路:使用现有的注解处理,原理使用validate注解原理 直接上干货,一行代码搞定校验: ValidateUtils.validat…

业务背景:上传excel文件进行基础数据校验,然而东西太多写着写着就...自然成了测试的KPI了

解决思路:使用现有的注解处理,原理使用@validate注解原理

直接上干货,一行代码搞定校验:

ValidateUtils.validate(List.of(fieldReq));

目录

工具类

测试实体


工具类

import jakarta.annotation.Resource;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validator;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;/*** date:2025/4/23 22:56* author: haohaounique@163.com*/
@Component
public class ValidateUtils {public static final String TIP = "第%s行数据异常,%s,请检查";//注意jdk版本不同引入的包不同//import jakarta.validation.Validator;//import javax.validation.Validator;private static Validator validator;public Validator getValidator() {return validator;}@Resourcepublic void setValidator(Validator validator) {ValidateUtils.validator = validator;}//默认从第1行开始 index=1public static <T> void validate(List<T> list) {if (Objects.isNull(list) || list.isEmpty()) {return;}AtomicInteger atomicInteger = new AtomicInteger(0);for (T t : list) {int lineNo = atomicInteger.addAndGet(1);Set<ConstraintViolation<T>> validate = validator.validate(t);if (!validate.isEmpty()) {//可自定义throw new IllegalArgumentException(String.format(TIP,lineNo,validate.iterator().next().getMessage()));}}}//指定起始行号public static <T> void validate(List<T> list,Integer startIndex) {if (Objects.isNull(list) || list.isEmpty()) {return;}if (startIndex==null || startIndex<0) {startIndex = 0;}AtomicInteger atomicInteger = new AtomicInteger(startIndex);for (T t : list) {int lineNo = atomicInteger.addAndGet(1);Set<ConstraintViolation<T>> validate = validator.validate(t);if (!validate.isEmpty()) {//可自定义throw new IllegalArgumentException(String.format(TIP,lineNo,validate.iterator().next().getMessage()));}}}
}

测试实体

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;/*** date:2025/3/16 9:33* author: haohaounique@163.com*/
@Data
@Schema(description = "规则配置添加请求")
public class RuleConfigAddReq {/*** 规则KEY*/@Schema(description = "规则KEY",requiredMode = Schema.RequiredMode.REQUIRED)@NotBlank(message = "规则KEY不能为空")private String ruleKey;/*** 字段名称*/@Schema(description = "字段名称")@NotBlank(message = "字段名称不能为空")private String fieldName;/*** 字段描述*/@Schema(description = "字段描述")@NotBlank(message = "字段描述不能为空")private String fieldDescription;/*** 类名*/@Schema(description = "类名")@NotBlank(message = "类名不能为空")private String className;/*** 类描述*/@Schema(description = "类描述")@NotBlank(message = "类描述不能为空")private String classDescription;/*** 表达式*/@Schema(description = "表达式")@NotBlank(message = "表达式不能为空")private String expression;/*** 顺序*/@Schema(description = "顺序")@NotNull(message = "顺序不能为空")private Integer ruleOrder;/*** 提示信息*/@Schema(description = "提示信息")@NotBlank(message = "提示信息编码不能为空")private String tipCode;/*** 提示信息*/@Schema(description = "提示信息")@NotBlank(message = "提示信息不能为空")private String tipMessage;
}

仿上传之后用easyexcel解析后生成的实体对象进行测试【此处省略上传解析,工具类待后续文章补充】

    @RequestMapping("/validate")public void validate() {RuleConfigAddReq ruleConfigAddReq = new RuleConfigAddReq();ruleConfigAddReq.setRuleKey("ruleKey");ruleConfigAddReq.setFieldName("fieldName");ruleConfigAddReq.setFieldDescription("fieldDescription");ruleConfigAddReq.setClassName("className");ruleConfigAddReq.setClassDescription("classDescription");ruleConfigAddReq.setExpression("expression");ruleConfigAddReq.setRuleOrder(1);FieldReq fieldReq = new FieldReq();//ValidateUtils.validate(List.of(fieldReq));}

http://www.dtcms.com/wzjs/586555.html

相关文章:

  • 成都餐饮网站建设ppt模板百度云
  • 做进口产品的网站网络营销seo教程
  • 遵义公司建网站要多少费用医院网站怎么建设
  • 无锡新区建设环保局网站网站建设协议一百互联
  • 如何建立个人免费网站做创新方法工作的网站
  • 福建省住房和城乡建设厅的网站企业网站静态模板下载
  • 像网站分类一样的表格图怎么做长沙人才市场最新招聘
  • 织梦模仿网站视频一个微信小程序要多少钱
  • 佛山公司网站设计产品信息发布网站
  • 前端开发35岁以后干什么整站优化多少钱
  • 注册公司网站怎么收费做dnf辅助网站
  • 厦门专业做网站的公司网站建设 商业价值
  • 企业网站的优化做环保是跑还是网站卖
  • 什么服装网站做一件代发网站建设论文的前言
  • 网站入口设计规范广东省建设协会网站
  • 做电商网站有什么用湖南省住建厅官方网站建设干校
  • 永城网站设计公司软件源地址大全
  • 网站开发与设计的实训报告用什么网站开发巴西客户
  • 动易网站后台sharepoint网页制作教程
  • 外省公司做网站备案国外空间网站源码
  • 北京网络安全公司排名烟台seo快速排名
  • 做网站用多大的画布外包公司是怎么回事
  • 快彩网站开发厦门企业制作网站
  • 徐州网站建设方案推广小程序代理公司哪家好
  • 哔哩哔哩高能建站平面设计线
  • 网站建设的最终目标企业网络搭建
  • 网站开发需要哪些资料租房合同 模板
  • 公交公司网站建设的意义百度账号购买1元40个
  • 建设银行信用卡提额网站php获取wordpress
  • 做网站工作的怎么填职务交通网上服务平台