校验规则引擎

news2024/12/24 22:12:39

目录

一 架构设计图

二 表设计及数据展示

 三 顶层接口

 四 压测结果

五 其他规则引擎比较


适用场景:校验场景以及使用该思想进行可视化配置化开发(可大幅提高开发效率,长期维护简单)

 例如:履约系统下单中的校验,称重过程中的校验,扫描枪后台校验、数据入库过程中的校验等

 商业价值:one do all    ,减少敏捷开发过程中的研发,发布,测试环节(针对模型不变情况),大幅减少研发人力投入,长期维护成本(比如你能找一下某个业务的校验逻辑么......面对代码抓狂吧)

不适宜场景:依赖实时查询DB较高场景及外部系统依赖较高情况(设计旨在高并发)

一 架构设计图

重点在模型抽象方面,可根据实际业务需求进行处理;最主要目的达到按需校验

模型:非空、长度、普通替换、正则替换、包含、起始包含、大小比较、正则与、正则或、自定义校验,转换

二 表设计及数据展示

 

主表设计,其他表设计暂不列出
create table check_config
(
    id               bigint auto_increment comment '主键id'
        primary key,
    check_key        varchar(100)                          null comment '校验key',
    check_type       varchar(20)                           null comment '校验类型',
    check_name       varchar(20)                           null comment '校验名称',
    check_word       varchar(100)                          null comment '校验字段',
    check_model      varchar(20)                           null comment '校验模型',
    check_class      varchar(500)                          null comment '校验类',
    check_expression text                                  null comment '校验表达式',
    check_order      tinyint     default 1                 null comment '校验顺序 默认1,系统字段校验为0',
    check_msg        text                                  null comment '校验提示',
    status           tinyint     default 1                 null comment '默认状态 启用-1 0-不启用',
    create_time      datetime    default CURRENT_TIMESTAMP null comment '创建时间',
    create_by        varchar(60) default 'system'          not null comment '创建人',
    update_time      datetime    default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
    update_by        varchar(60)                           null comment '更新建人'
)comment '校验配置';

 三 顶层接口

 四 压测结果

 测试结果待具体场景以及代码调优方面而定,本测试结果仅供参考

单机tomcat   jemeter压测

1线程  10秒 实际请求数:10537

8线程  10秒 实际请求数  46866 

postman验证情况

五 其他规则引擎比较

相比开源的drools 等规则引擎工具优势,无须编写复杂的表达式,另外项目定制化开发,可随意扩展

另外有些框架采用SPEL表达式,本框架下采用最原始的数学表达式,例如区间校验仅需填写区间表达式和值,即可判断是否满足区间,针对后续字段的变化,只需要调整最初封装字段的名称而无需全局修改

如 [3,8]  user_age=9  校验结果  user_age is limited [3,8]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/445437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++(初识结束)

目录 4缺省参数 4.1缺省参数的概念 4.2缺省参数分类 4.3缺省参数的应用 5.函数重载 5.1函数重载概念 5.2c支持函数重载的原理-名字修饰(name Mangling) 6.引用 6.1引用概念 6.2引用特性 6.3常引用 6.4使用场景 6.4.1做参数 6.4.2做返…

2023年4月-近期看书

复习书记 用于读书 文章目录 复习书记一、(2001)控制工程基础二、(3001)交通管理与控制三、(1001)英语 一、(2001)控制工程基础 学习这本书的前6章节。 参看视频链接: https://www.bilibili.com/video/BV1Sb411q7jU?p8&spm_id_frompageDriver&vd_source…

构建完善的帮助中心:降低企业客户服务成本,提高客户满意度

客户服务是企业成功的关键之一,一家公司的成功不仅仅取决于产品或服务的质量,还在于能否为客户提供优质的客户服务。随着现代科技的发展,企业需要面对越来越多的客户服务需求,不良的客户服务将对企业的声誉和业务产生严重的影响。…

马斯克爆料Twitter裁了八成员工;OpenAI CEO:GPT-5根本不存在;小鹏被曝年终奖打0.5折 | AI一周资讯

来源: AI前线 微信号:ai-front 整理 | 凌敏 微软宣布开源 Deep Speed Chat;消息称软银旗下 Arm 启动赴美 IPO;国家网信办出台生成式 AI 管理办法;前理想 AI 芯片一号位骄旸加入三星,负责组建 GPU 团队…… 资 讯 Op…

KHS灌装机西门子触摸屏维修6AV6545-6DB10-0BS0

KHS设备维修范围包括:KHS无菌灌装设备,KHS包装设备,PET瓶装机, KHS码垛设备, KHS灌装机。 科埃斯KHS灌装机西门子P350工控机常见故障现象 1、工控机开机有显示,但是屏幕很暗,用调亮度功能键调…

熵、贝叶斯、极大似然

熵及熵在机器学习中的作用 熵 reference:https://blog.csdn.net/tsyccnh/article/details/79163834 香农给熵的定义:无损编码事件信息的最小平均编码长度 直观理解熵的定义:表示某一件事的不确定性 I ( x 0 ) − l o g ( p ( x 0 ) ) I(…

【Java版oj】day37数据库连接池、mkdir

目录 一、数据库连接池 (1)原题再现 (2)问题分析 (3)完整代码 二、mkdir (1)原题再现 (2)问题分析 (3)完整代码 一、数据库连接…

ChatGPT会如何改变制造业?

来源 | Smart Industry Edgenesis编译 ChatGPT最新版本的发布成为热门头条。OpenAI表示该版本的ChatGPT能够在多个专业测试中达到“人类水平”的表现,例如司法考试和SAT考试。不过,在工业领域中,ChatGPT能够发挥怎样的作用呢?Sma…

升级OpenSSH版本(安装telnet远程管理主机

目录 一.OpenSSH是什么? 二.升级OpenSSH版本至8.9 1.环境介绍 2.检查是否安装telnet 3.安装telnet服务 4.启动telnet服务 5.安全文件关闭或者修改(否则root无法telnet登录) 6.安装依赖包 7.备份原有SSH服务版本 8.下载OpenSSH升级所需安装包 9.删除现有…

MySQL索引失效的七大场景

文章目录 口诀初始化数据库索引失效七大场景模(模糊查询)型(数据类型)数(函数)或(OR)运(运算)最(最左原则)快(查询数据量大…

接口自动化测试系统知识大全,你想要的全都有

目录 接口自动化测试的前景 接口自动化测试的方法 接口自动化测试怎么做 接口自动化测试工具有哪些? 接口自动化测试框架 接口自动化测试的前景 随着移动互联网、云计算和大数据等技术的不断发展,接口自动化测试在软件开发中的重要性越来越凸显。尤其是随着微…

typora导出PDF很慢的解决办法

Typora导出PDF文件一直卡住 以前可以导出,但突然导出错误 1、首先,查看服务中的Print Spooler是否打开,没有打开进行服务打开 2、打开后,再进行导出,不行的话,就是前面的打印进程阻塞 解决方法&#xff…

软件测试?月薪20k+?不会自动化测试的我真的很难....

做自动化测试后悔吗? 后悔,真的后悔! 后悔没有早点学..... 虽然现在网上到处都在散播35的焦虑,姑且信之,那么反问你,如果你30岁了,那么给你5年,能够在某个领域成为专家呢&#xf…

计算广告(十七)

多渠道组合路径效率评价 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 分析背景: 电商归因分析通常以 last_click 为基准,将成交转化归功于用户完成转化前的最近一个广告系列。然而,在此之前&a…

java--线程池

目录 1.线程池概 2 为什么要使用线程池 1创建线程问题 2解决上面两个问题思路: 3线程池的好处 4线程池适合应用场景 3 线程池的构造函数参数 1.corePoolSize int 线程池核心线程大小 2.maximumPoolSize int 线程池最大线程数量 3.keepAliveTime long 空闲…

Centos elasticsearch 8.7.0 集群搭建

Install Elasticsearch with RPM | Elasticsearch Guide [8.7] | Elastic 准备了3台centos,ip分别是: 1、192.168.1.103 2、192.168.1.148 3、192.168.1.192 开始安装第1个节点 1、 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticse…

快速引用网站标题链接到Markdown

JS脚本 将JS脚本添加到书签栏,通过调用书签栏执行快速复制网页标题和链接 合成Markdown格式的方法: javascript:!function(a){var b document.createElement("textarea"),c document.getSelection();(b.textContent a),document.body.ap…

【C++】STL——vector 深度剖析 及 模拟实现

文章目录 前言1. vector的介绍及使用1.1 vector的介绍1.2 vector的使用1.2.1 构造函数1.2.2 vector对象的遍历1.2.3 vector的迭代器1.2.4 reserve和resize1.2.5 insert和erase1.2.6 vector< char > 能否替代string 2. vector的模拟实现2.1 STL_vector源码浏览2.2 vector的…

网络安全-网站后台的寻找+网页JS文件信息收集

网络安全-网站后台的寻找网页JS文件信息收集 前言 一&#xff0c;我也是初学者记录的笔记 二&#xff0c;可能有错误的地方&#xff0c;请谨慎 三&#xff0c;欢迎各路大神指教 四&#xff0c;任何文章仅作为学习使用 五&#xff0c;学习网络安全知识请勿适用于违法行为 学习网…

数影周报:美联邦机构被曝数据泄露丑闻,嘀嗒狗完成数千万元融资

本周看点&#xff1a;美联邦下属机构超25万消费者隐私被泄露&#xff1b;钉钉、金山办公同日公布AI应用&#xff1b;京东全球购与宿迁市港口集团签订战略协议&#xff1b;嘀嗒狗完成数千万元Pre-A轮融资...... 数据安全那些事 美联邦机构被曝数据泄露丑闻 海外网4月20日电 据美…