System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于策略模式和线程池的配置化校验方法技术_技高网

一种基于策略模式和线程池的配置化校验方法技术

技术编号:40195387 阅读:7 留言:0更新日期:2024-01-26 23:58
本发明专利技术提供的一种基于策略模式和线程池的配置化校验方法,所述校验方法包括:将需要校验的业务逻辑定义成多个算法;根据多个业务场景,将策略划分为多个组;根据多个业务场景,调用策略或策略组;将策略执行结果进行组装,将组装后的结果提示给用户;将策略进行拆解,将所有策略名称及校验结果响应给用户。一个业务模块需要执行哪些策略、拦截等级等都通过配置实现,达到校验实时开闭的目的。而后通过线程池技术,批量执行所有配置的策略,将串行的耗时降低为单个策略的耗时。

【技术实现步骤摘要】

本专利技术涉及业务数据校验领域,尤其涉及一种基于策略模式和线程池的配置化校验方法


技术介绍

1、任何一个软件系统都会有大量的各种各样的校验逻辑,在执行真正的业务逻辑前,往往会先执行一系列的前期较验工作,包括参数合法性校验和业务逻辑校验。

2、参数合法性校验最常见的校验参数值非空校验、格式校验、最大值最小值校验等,可以通过注解实现。

3、业务数据校验通常与实际业务相关,比如提交订单接口,我们可能需要校验商品是否合法、库存是否足够、客户余额是否足够、还有其他的一些风控校验,包括单独或全局的业务类校验和技术类类校验,当校验规则到达一定规模,甚至需要将校验配置化时,就会对编码、维护、扩展及性能损耗造成极大的负担。

4、2、现有技术的方案:

5、(1)提取公共校验函数

6、(2)使用过滤器或切面进行全局校验

7、(3)框架中特定的注解

8、(4)fluent-validator业务校验器。

9、(1)提取公共校验函数

10、采用代码堆叠的形式将大量的校验逻辑耦合在每个核心业务逻辑中,或者将校验提取成公共的方法,在每个模块重复调用。这种实现方式不够优雅,不符合设计原则的单一职责原则和开闭原则,不能做到自由切换,代码大量冗余、复用率低,逻辑复杂、代码混乱,扩展性差,不支持配置化。

11、(2)过滤器或切面进行全局校验

12、通过网关、过滤器或自定义切面的方式实现全局的逻辑校验,对业务代码无侵入性,可实现配置化。缺点是配置繁杂,校验必须串行,耗时较长。

13、(3)框架中特定的注解

14、编码简单、简洁;缺点是校验内容固定,灵活性不高,配置分散,不易管理,不可配置化。

15、fluent-validator业务校验器

16、fluent-validator业务校验器校验逻辑与业务逻辑解耦,符合单一职责原则,易维护,可复用,采用注解形式,编码优雅,良好的集成spring,回调自由;缺点:框架略重,校验器开发稍显繁杂。


技术实现思路

1、鉴于上述问题,提出了本专利技术以便提供克服上述问题或者至少部分地解决上述问题的一种基于策略模式和线程池的配置化校验方法。

2、根据本专利技术的一个方面,提供了一种基于策略模式和线程池的配置化校验方法,所述校验方法包括:

3、将需要校验的业务逻辑定义成多个算法;

4、根据多个业务场景,将策略划分为多个组;

5、根据多个业务场景,调用策略或策略组;

6、将策略执行结果进行组装,将组装后的结果提示给用户;

7、将策略进行拆解,将所有策略名称及校验结果响应给用户。

8、可选的,所述将需要校验的业务逻辑定义成多个算法具体包括:将需要校验的业务逻辑定义成多个算法,按照策略的方式来实现。

9、可选的,所述根据多个业务场景,将策略划分为多个组具体包括

10、根据不同的业务场景,将策略划分为不同的组,并根据业务需要调整配置库设计,添加拦截等级,显示顺序契合业务的配置设计。

11、可选的,所述根据多个业务场景,调用策略或策略组具体包括:采用线程池的池化技术,根据不同的业务场景,调用策略或策略组。

12、可选的,所述将策略执行结果进行组装,将组装后的结果提示给用户具体包括:

13、将策略执行结果进行组装,根据拦截等级,显示顺序的配置将组装后的结果提示给用户。

14、可选的,所述将策略进行拆解,将所有策略名称及校验结果响应给用户具体包括:将策略进行拆解,用线程池直接调用所有的策略,将所有策略名称及校验结果响应给用户。

15、本专利技术提供的一种基于策略模式和线程池的配置化校验方法,所述校验方法包括:将需要校验的业务逻辑定义成多个算法;根据多个业务场景,将策略划分为多个组;根据多个业务场景,调用策略或策略组;将策略执行结果进行组装,将组装后的结果提示给用户;将策略进行拆解,将所有策略名称及校验结果响应给用户。一个业务模块需要执行哪些策略、拦截等级等都通过配置实现,达到校验实时开闭的目的。而后通过线程池技术,批量执行所有配置的策略,将串行的耗时降低为单个策略的耗时。

16、上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。

本文档来自技高网...

【技术保护点】

1.一种基于策略模式和线程池的配置化校验方法,其特征在于,所述校验方法包括:

2.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在于,所述将需要校验的业务逻辑定义成多个算法具体包括:将需要校验的业务逻辑定义成多个算法,按照策略的方式来实现。

3.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在于,所述根据多个业务场景,将策略划分为多个组具体包括

4.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在于,所述根据多个业务场景,调用策略或策略组具体包括:采用线程池的池化技术,根据不同的业务场景,调用策略或策略组。

5.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在于,所述将策略执行结果进行组装,将组装后的结果提示给用户具体包括:

6.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在于,所述将策略进行拆解,将所有策略名称及校验结果响应给用户具体包括:将策略进行拆解,用线程池直接调用所有的策略,将所有策略名称及校验结果响应给用户。

...

【技术特征摘要】

1.一种基于策略模式和线程池的配置化校验方法,其特征在于,所述校验方法包括:

2.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在于,所述将需要校验的业务逻辑定义成多个算法具体包括:将需要校验的业务逻辑定义成多个算法,按照策略的方式来实现。

3.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在于,所述根据多个业务场景,将策略划分为多个组具体包括

4.根据权利要求1所述的一种基于策略模式和线程池的配置化校验方法,其特征在...

【专利技术属性】
技术研发人员:尹杰涛
申请(专利权)人:北银金融科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1