通过线程+反射,解决复杂数据验证

2023-11-03

第一步: 建立需要传入参数的 Vo 对象。

    @ApiModelProperty(value = "身份证")
    private String idcard;

    @ApiModelProperty(value = "姓名")
    private String name;

	public Vo(){
        super();
    }

	public Vo(Personnel personnel){
      BeanUtils.copyProperties(personnel, this);
    }

	public void setIdcard(String idcard){
        this.idcard = idcard;
    }

    public void setName(String name){
        this.name = name;
    }

第二步:实现建立Service

(1)接口: interface

 List<ErrorVo> check(Vo  vo);

(2)实现 @Service

@Override
	public List<ErrorVo> submits(Validation validation, Vo vo) {
		List<ErrorVo> Vos = null;
		Object valservice =  SpringUtil.getBean(validation.getClassName());
		if (StrUtil.isNotEmpty(validation.getCheckMethod())) {
			errorTypeVos = (List<ErrorVo>) Reflections.invokeMethodByName(valservice,
					validation.getCheckMethod(), sysUserVo);
		}
		
		return errorTypeVos;
	}
@Override
    public List<Validation> queryChecks(QueryWrapper<DataValidation> query) {
        return dataValidationMapper.selectList(query);
    }
 @Override
      public List<ErrorVo> checkEmployee(Vo vo) {
       QueryWrapper<Validation> query = new QueryWrapper<>();
       query.lambda().eq(Validation::getType, "type");
       List<DataValidation> checkVal = baseService.queryChecks(query);
       List<ErrorVo> errorVos = new ArrayList<>();
       // 多线程
       List<CompletableFuture<List<ErrorVo>>> collect = checkVal.parallelStream()
               .filter(waitSortBizData -> "submit".equals(waitSortBizData.getCheckMode()))
               .map(validation -> CompletableFuture.supplyAsync(() ->
                       threadService.submits(check, vo), executor)
               ).collect(Collectors.toList());
       // 获取值
       List<List<ErrorVo>> list = collect.stream().map(CompletableFuture::join).collect(Collectors.toList());
       for (List<ErrorVo> l : list) {
        if (CollUtil.isNotEmpty(l)) {
         errorVos .addAll(l);
        }
       }
       return errorVos ;
      }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过线程+反射,解决复杂数据验证 的相关文章

  • 如何在测试套件中定义 JUnit 方法规则?

    我有一个类 它是 JUnit 测试类的 JUnit 套件 我想定义一个规则on the suite 这是可以做到的 但需要做一些工作 您还需要定义自己的 Suite 运行程序和测试运行程序 然后在测试运行程序中重写 runChild 使用以
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • 使用 Checkstyle Plugin 时从插件调用代码时出现问题:“org.eclipse.jface”

    我正在尝试在 Rational Software Architect 7 0 0 4 上使用 eclipse cs 插件 我最近卸载了旧的 beta2 版本并安装了 beta3 插件本身按照之前的配置工作 但是每当我尝试通过 Windows
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • Java 变量的作用域

    我不明白为什么这段代码的输出是10 package uno public class A int x 10 A int x 12 new B public static void main String args int x 11 new
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • cucumber-junit-platform-engine 中的功能文件发现

    In cucumber junit我使用的库 CucumberOptions定义功能文件位置 package com mycompany cucumber import cucumber api CucumberOptions import
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新

随机推荐

  • COLMAP生成MVSNet数据集

    一 colmap2mvsnet py COLMAP可以给图像数据集标定一套相机外参及视图选择 如果想用COLMAP导出的结果输入MVSNet测试 需要把数据集 图片 相机参数等 转化为MVSNet的输入格式 MVSNet的作者yaoyao在
  • 【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 1 IOC DI配置管理第三方bean 1 1
  • ibatisNet 数据访问框架

    author skate time 2010 03 04 ibatisNet 数据访问框架 介绍欢迎来到iBATISNet Database Layer 这个框架将让你能够更好的在dotnet应用中设计和实现实体层 这个框架有两个主要的组成
  • yum简述

    1 什么是yum源 说到yum源就必须说到linux系统中特有的依赖关系问题 yum就是为了解决依赖关系而存在的 yum源就相当是一个目录项 当我们使用yum机制安装软件时 若需要安装依赖软件 则yum机制就会根据在yum源中定义好的路径查
  • 区块链 商品溯源

    商品溯源是指追踪记录商品从生产到零售的全部环节 它的实现需要产业链上下游各方共同参与 商品溯源属于一种多环节协同的综合性商业行为 集合了 IoT 技术 防伪技术 信息系统与溯源机制 今天 区块链技术作为支撑数字经济的基础设施技术 其分布式共
  • 替代Eureka,你可以试试Consul

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 1 Eureka官宣2 x版本不再开源 2 互联网大厂的基础架构 自研服务注册中心 3 中小公司的其他选择 Consul 1 Eureka官方宣布2 x不再开源
  • ucenter info:can not connect to MySQL server解决办法

    Discuz搬家之后 发现ucenter 进不去了 错误信息为 UCenter info Can not connect to MySQL server Error Access denied for user a localhost us
  • electron-vue 安装环境、构建+打包(mac和windows)这一篇就够了

    由于公司需要 下一个项目需要做CS开发 技术选型分析后 选择了electron Electron 是一个使用 JavaScript HTML 和 CSS 等 Web 技术创建原生程序的框架 研究发现 electron与vue cli3 0脚
  • git简单提交操作

    一 本地仓库操作 1 打开git命令行 先 到需要提交的目录 2 输入git init 初始化本地仓库 3 输入git add
  • mysql 索引优化实战 (续)

    分页查询优化 示例表 CREATE TABLE employees id int 11 NOT NULL AUTO INCREMENT name varchar 24 NOT NULL DEFAULT COMMENT 姓名 age int
  • 企业微信不支持在当前APP中打开该小程序,可前往微信打开

    最近因为业务需求 需要将原来的小程序添加到企业微信 在本地测试的时候一切正常 本以为这周任务做完了 结果遇到一个深坑 到处查资料 找了很久在开发者论坛发现有人遇到过类似的问题 这里记录一下 根据 企业微信官方文档在关联了微信小程序后 可以从
  • 传输层协议------TCP协议

    这里写目录标题 协议段格式 确认应答机制 超时重传机制 协议特性 面向连接 三次握手建立连接和四次挥手断开连接 理解TIME WAIT的状态 解决TIME WAIT状态引起bind失败的方法 理解CLOSE WAIT的状态 保活机制 可靠传
  • Hive doc

    https cwiki apache org confluence display Hive GettingStarted Table of Contents Hive introduction videos From Cloudera I
  • shell 判断操作系统类型

    文章目录 shell 判断操作系统类型 shell 判断操作系统类型 3 种 OSTYPE 旧版的shell 无法识别 uname uname substr 1 Administrator DESKTOP MR9A589 MINGW64 D
  • ajax请求设置同步,ajax 设置同步

    这个问题总是碰见 但是又总是记不住怎么拼写 这次直接写出来 长期保存 Ajax请求默认的都是异步的 如果想同步 async设置为false就可以 默认是true 例如 ajax url cache false dataType json t
  • 【亲测】postman下载需要注意的一些问题

    之前一直用postman传递普通参数 后来用了上传 最近使用了下载 下载会出现失败 原因看了很多问题都没解决 最后试了下接口变post就可以 但是get接口是可以下载的 只是postman里测试的话需要post
  • Deepfakes论文总结

    Deepfakes论文总结 更新中 目前的deepfake检测 从检测层级上讲有两类 一类工作认为 深度伪造检测 应该检测伪造过程中底层的artifact 比如本文中的 5 6 7 8 这类文章通常非常善于设计网络架构 设计数据增强方式 设
  • Python中自带的OpenCV使用指南

    Python中自带的OpenCV使用指南 OpenCV是一种广泛使用的计算机视觉库 它提供了大量的算法和工具 可以帮助用户处理图像和视频 Python中自带的OpenCV是一种基于Python语言的OpenCV库 它提供了Python开发人
  • MySQL使用UDF调用shell脚本

    前言 在最近的项目中 由于需要使用MySQL的UDF user defined function 这个特性从未使用过 而且个人觉得这个特性以后应该会经常使用 所以写下博文 记录和分享这个特性的用法 UDF是mysql的一个拓展接口 UDF
  • 通过线程+反射,解决复杂数据验证

    第一步 建立需要传入参数的 Vo 对象 ApiModelProperty value 身份证 private String idcard ApiModelProperty value 姓名 private String name publi