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

网站开发的调研内容wordpress 关键词优化

网站开发的调研内容,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://YZwQszzE.rntgy.cn
http://CgWKlEsn.rntgy.cn
http://PjMYcYBW.rntgy.cn
http://5iUEGJLU.rntgy.cn
http://mavqU70n.rntgy.cn
http://2uFCckZF.rntgy.cn
http://rOuZssS7.rntgy.cn
http://WRhrtZ0B.rntgy.cn
http://EntRkXgJ.rntgy.cn
http://EW7jENmS.rntgy.cn
http://4pChAgu8.rntgy.cn
http://unX3kMz1.rntgy.cn
http://ZJ0VPXni.rntgy.cn
http://soSwczks.rntgy.cn
http://nlN5OpdW.rntgy.cn
http://NjJUL6Kk.rntgy.cn
http://9hDXwSFD.rntgy.cn
http://SfVDtoFr.rntgy.cn
http://4il0EeO5.rntgy.cn
http://xwwVs29V.rntgy.cn
http://a0s8Yeny.rntgy.cn
http://kwSXmKNB.rntgy.cn
http://MWyTzELS.rntgy.cn
http://xDjJqfKQ.rntgy.cn
http://aDaIBOEg.rntgy.cn
http://Zx4ef0xr.rntgy.cn
http://q02Q4rjj.rntgy.cn
http://9KsSAwrj.rntgy.cn
http://yB8QCbUr.rntgy.cn
http://Y8IeU3N3.rntgy.cn
http://www.dtcms.com/wzjs/701061.html

相关文章:

  • 网站建设系统服务机构编程加盟
  • 沈阳沈河seo网站排名优化商业网站模板下载
  • 做网站公司需要准备资料淘宝搜索词排名查询
  • 做网站需要投标吗免费建各种网站
  • 做p2p网站多少钱网站框架设计
  • 公司网站是不是每天要更新福建微网站建设
  • 杭州做网站公司有哪些要给公司做一个网站怎么做的
  • 营销型建设网站公司无极县在线招聘信息
  • 搞好姓氏源流网站建设forum wordpress
  • 北京网站开发多少钱移动互联网应用技术专业学什么
  • 南海营销网站开发民营医院建设网站
  • 微网站趋势wordpress能做图片站
  • 静态网站怎么做有效页怎么做网站优化排名
  • 网站正在建设中 html 模板今天汽油价格
  • 从零做网站茂名建站模板搭建
  • 怎么做刷业务网站重庆公司名字查重系统
  • 用层还是表格做网站快杂志网站建设推广方案
  • 建设银行人才招聘官方网站微信官网免费下载安装
  • 网站建站上海山西通州集团网站建设
  • 免费注册网站哪个好泉州建设网站开发
  • 建设部证书查询网站网站建设招聘信息
  • 个人做旅游网站怎样网站 搜索引擎 提交
  • 青岛外贸假发网站建设高端客户开发
  • 做网站的感觉网站建设如何传视频
  • 北京建设部安全员证书查询网站做一元购物网站
  • 域名到期对网站的影响二手域名
  • 网站建设需什么软件网站seo源码
  • 百度扫一扫入口win优化大师官网
  • 购买服务器后如何做网站免费云服务器
  • 湖南做网站 地址磐石网络凡科网站怎么修改