一种业务调用的方法、装置及终端设备与流程
未命名
07-12
阅读:111
评论:0

1.本发明属于数据处理的技术领域,尤其涉及一种业务调用的方法、装置及终端设备。
背景技术:
2.在一些跨平台项目中,往往采用同一个业务代码满足多个调用方不同的业务调用需求。其中,多个平台可单独作为调用方通过向业务代码传入需要调用的方法或函数,以实现业务逻辑。
3.然而,上述的方法或函数的调用过程,需要业务代码的方法名或函数名直接暴露给调用方,进而实现业务逻辑。即传统的调用过程往往需要调用方直接传入方法名或函数名,才能实现业务逻辑。若将业务代码与调用方隔离(即不向调用方公开函数或方法),则无法实现业务逻辑,这是一个亟需解决的技术问题。
技术实现要素:
4.有鉴于此,本技术实施例提供了一种业务调用的方法、装置、终端设备及计算机可读存储介质,以解决若将业务代码与调用方隔离(即不向调用方公开函数或方法),则无法实现业务逻辑的技术问题。
5.本技术实施例的第一方面提供了一种业务调用的方法,所述业务调用的方法应用于业务中间层和业务底层两个功能模块,所述业务调用方法包括:
6.所述业务中间层接收调用方传入的当前调用指令和参数;
7.所述业务中间层在缓存中匹配所述当前调用指令对应的数据模型;
8.所述业务中间层获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;
9.所述业务中间层将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;
10.所述业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。
11.进一步地,所述业务中间层在缓存中匹配所述当前调用指令对应的数据模型的步骤,包括:
12.所述业务中间层获取缓存中的指令清单集;所述指令清单集中包括多个调用指令以及所述多个调用指令对应的数据模型;
13.所述业务中间层在所述指令清单集中匹配所述当前调用指令对应的数据模型。
14.进一步地,所述业务中间层获取缓存中的指令清单集的步骤,包括:
15.在多个预存文件中筛选具有预设文件后缀的目标文件;
16.若所述目标文件中的行首文字为第一预设文字,则扫描所述目标文件中行首文字为第二预设文字的目标文字行;所述行首文字是指文字行中的首位文字;
17.获取所述目标文字行中预设符号的第一位置,获取所述行文字中位于所述第一位置之前的空格位置;
18.将所述第一位置和所述空格位置之间对应的内容作为所述调用指令以及所述调用指令对应的数据模型。
19.进一步地,所述业务中间层中的第一方法或第一函数均为公有方法或公有函数,所述业务底层中的第二方法或第二函数均为私有方法或私有函数。
20.进一步地,在所述业务中间层在缓存中匹配所述当前调用指令对应的数据模型的步骤之后,还包括:
21.若所述业务中间层在缓存中未匹配到所述当前调用指令对应的数据模型和参数,则向所述调用方返回错误消息。
22.进一步地,所述业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方的步骤,包括:
23.所述业务底层基于所述参数执行所述目标方法或目标函数,并通过软件开发工具包sdk调用数据库和/或网络层,得到业务调用结果,并将所述业务调用结果传回所述调用方。
24.进一步地,所述业务中间层包括指令接收器、指令清单集、指令解析器和业务底层调用函数;
25.所述指令接收器用于接收调用方传入的当前调用指令和参数;
26.所述指令清单集用于存储多个调用指令以及所述多个调用指令对应的数据模型;
27.所述指令解析器用于在缓存中匹配所述当前调用指令对应的数据模型,并获取所述数据模型的对应类名和实体名;
28.所述业务底层调用函数用于将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数。
29.本技术实施例的第二方面提供了一种业务调用的装置,所述业务调用的装置包括业务中间层和业务底层两个功能模块,所述业务中间层包括接收模块、匹配模块、获取模块和调用模块,所述业务底层包括执行模块,所述业务调用的装置包括:
30.所述接收模块,用于接收调用方传入的当前调用指令和参数;
31.所述匹配模块,用于在缓存中匹配所述当前调用指令对应的数据模型;
32.所述获取模块,用于获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;
33.所述调用模块,用于将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;
34.所述执行模块,用于基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。
35.本技术实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。
36.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述方法的步
骤。
37.本技术实施例与现有技术相比存在的有益效果是:本技术通过业务中间层接收调用方传入的当前调用指令和参数;业务中间层在缓存中匹配所述当前调用指令对应的数据模型;业务中间层获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;业务中间层将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。上述方案,通过业务中间层将业务底层与调用方隔离,调用方无需直接传入方法名或函数名,仅需通过传入当前调用指令,即可实现业务调用。当前调用指令经过业务中间层匹配对应的数据模型,并获取数据模型对应的类名、实体名和参数,以调用业务底层,实现业务调用。解决了若将业务代码与调用方隔离,则无法实现业务逻辑的技术问题。
附图说明
38.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
39.图1示出了本技术提供的一种业务调用的方法的示意性流程图;
40.图2示出了本技术提供的一种业务调用的方法中步骤102的具体示意性流程图;
41.图3示出了本技术提供的一种业务调用的方法中步骤1021的具体示意性流程图;
42.图4示出了本技术提供的业务中间层和业务底层的示意图;
43.图5示出了本技术提供的一种业务调用的装置的示意图;
44.图6示出了本技术一实施例提供的一种终端设备的示意图。
具体实施方式
45.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
46.本技术实施例提供了一种业务调用的方法、装置、终端设备及计算机可读存储介质,以解决若将业务代码与调用方隔离(即不向调用方公开函数或方法),则无法实现业务逻辑的技术问题。
47.首先,本技术提供了一种业务调用的方法,该业务调用的方法应用于业务中间层和业务底层两个功能模块。请参见图1,图1示出了本技术提供的一种业务调用的方法的示意性流程图。如图1所示,该业务调用的方法可以包括如下步骤:
48.步骤101:所述业务中间层接收调用方传入的当前调用指令和参数。
49.本技术为了将业务代码与调用方隔离,故将业务代码分割成业务中间层和业务底层两个功能模块。业务中间层用于接收调用方传入的当前调用指令和参数,并将当前调用指令解析成函数名或方法名,以调用对应的函数和方法。业务底层用于执行当前调用指令
对应的函数和方法。
50.可以理解的是,为了更好地说明本技术所采用的隔离方式,故将底层代码在软件逻辑上划分为两个功能模块:业务中间层以及业务底层,即业务中间层以及业务底层并不是实体装置,而是软件在处理逻辑上的功能划分。业务底层为传统的业务模块,而业务中间层为本技术的创新点,用于将调用方与业务底层进行隔离,使得调用方无需了解具体的函数名或方法名,仅需向业务中间层传入对应的当前调用指令,即可实现业务逻辑,以此隔离调用方与业务底层。
51.其中,业务中间层中的第一方法或第一函数均为公有方法或公有函数,所述业务底层中的第二方法或第二函数均为私有方法或私有函数。即业务中间层中的方法或函数均申明为公有,业务底层中的方法或函数均申明为私有。以此将调用方与业务底层进行隔离。
52.步骤102:所述业务中间层在缓存中匹配所述调用指令对应的数据模型。
53.数据模型是预先存储在缓存中的数据,匹配数据模型的方式具体如下:
54.具体地,步骤102具体包括步骤1021至步骤1022。如图2所示,图2示出了本技术提供的一种业务调用的方法中步骤102的具体示意性流程图。
55.步骤1021:所述业务中间层获取缓存中的指令清单集;所述指令清单集中包括多个调用指令以及所述多个调用指令对应的数据模型。
56.指令清单集用于存储的多个调用指令与数据模型之间的映射关系。在程序启动时,指令清单集将初始化至缓存中。
57.其中,指令清单集中多个调用指令与其对应的数据模型通过键值对的方式存储在所述缓存中。
58.示例性地,调用指令与其对应的数据模型以map《string,model》的方式存储。其中,string就是调用指令的名称唯一值,model就是数据模型。例如表1所示的两个键值对,分别表示两种调用指令与其对应的数据模型:
59.表1:
[0060][0061][0062]
如表1所示,数据模型model中的classmethod表示业务方法,由类名与方法名组成。其中,为了方便得到类名和方法名,本技术将类名与方法名之间采用句号“.”分割开。而parameter表示参数,该参数只有一个json,使得执行效果更为高效。
[0063]
具体地,步骤1021具体包括步骤a1至步骤a4。如图3所示,图3示出了本技术提供的一种业务调用的方法中步骤1021的具体示意性流程图。
[0064]
步骤a1:在多个预存文件中筛选具有预设文件后缀的目标文件。
[0065]
预存文件是指代码文件,可通过递归方法扫描所有代码文件中具有预设文件后缀的目标文件,例如:通过递归方法扫描所有代码文件中具有cpp或rs后缀的目标文件。其中,cpp表示c++文件,rs表示rust文件。
[0066]
步骤a2:若所述目标文件中的行首文字为第一预设文字,则扫描所述目标文件中行首文字为第二预设文字的目标文字行;所述行首文字是指文字行中的首位文字。
[0067]
第一预设文字包括但不限于class,第二预设文字包括但不限于public。示例性地,若目标文件中的行首文字为class,且class前后没有空格,则表示目标文件为公共类文件(公共类文件是指具有调用指令以及调用指令对应的数据模型的文件),扫描目标文件中行首文字为public的目标文字行。其中,公共类文件的名称为公共方法类名(即调用指令),例如:info.cpp文件中的info表示类名。
[0068]
步骤a3:获取所述目标文字行中预设符号的第一位置,获取所述行文字中位于所述第一位置之前的空格位置。
[0069]
步骤a4:将所述第一位置和所述空格位置之间对应的内容作为所述调用指令以及所述调用指令对应的数据模型。
[0070]
预设符号包括但不限于“(”,将“(”所处的第一位置作为lastindex索引,将空格位置作为fristindex索引,将fristindex索引和lastindex索引之间的内容作为调用指令以及调用指令对应的数据模型。
[0071]
步骤1022:所述业务中间层在所述指令清单集中匹配所述当前调用指令对应的数据模型。
[0072]
作为本技术的一个可选实施例,在步骤102之后,还包括:若所述业务中间层在缓存中未匹配到所述当前调用指令对应的数据模型和参数,则向所述调用方返回错误消息。
[0073]
步骤103:所述业务中间层获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名。
[0074]
如表1所示,业务中间层在匹配到当前调用指令对应的数据模型后,在数据模型model的classmethod中获取位于句号“.”前后的类名与方法名。
[0075]
步骤104:所述业务中间层将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数。
[0076]
步骤101至步骤104为业务中间层的执行逻辑,主要用于对当前调用指令进行解析,以得到当前调用指令对应的目标方法或目标函数,进而调用业务底层执行步骤105。
[0077]
具体地,所述业务中间层包括指令接收器、指令清单集、指令解析器和业务底层调用函数;
[0078]
所述指令接收器用于接收调用方传入的当前调用指令和参数(即执行步骤101)。
[0079]
所述指令清单集用于存储多个调用指令以及所述多个调用指令对应的数据模型(即执行步骤102)。
[0080]
所述指令解析器用于在缓存中匹配所述当前调用指令对应的数据模型,并获取所述数据模型的对应类名和实体名(即执行步骤103)。
[0081]
所述业务底层调用函数用于将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数(即执行步骤104)。
[0082]
步骤105:所述业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。
[0083]
步骤105为传统的处理过程,故在此不再赘述。
[0084]
具体地,若目标方法或目标函数需要调用数据库和/或网络层时,步骤105具体包括:业务底层基于所述参数执行所述目标方法或目标函数,并通过软件开发工具包sdk调用数据库和/或网络层,得到业务调用结果,并将所述业务调用结果传回所述调用方。
[0085]
为了更好地理解业务中间层和业务底层,请参见图4,图4示出了本技术提供的业务中间层和业务底层的示意图。如图4所示,调用方在调用业务方法时,传入当前调用指令和参数。业务中间层接收调用方传入的当前调用指令,通过解析器匹配当前调用指令对应的数据模型model,再解析数据模型model对应的类名、方法名或函数名。业务中间层在类名对应的类中调用方法名或函数名对应的方法或函数。业务底层基于传入的参数执行上述方法或函数,以完成业务调用。
[0086]
可以理解的是,业务底层对于调用方而言,可理解为黑盒子,只有提供正确的当前调用指令才可以调用,调用方无需关心底层代码相关的函数或方法。
[0087]
值得注意的是,开发人员在每一次为业务底层添加业务代码时,都需要在指令清单集中添加相同的指令名称,用于调用新添加的业务代码。在指令清单集中未申明的指令名称,调用方无法正常调用。
[0088]
在本实施例中,通过业务中间层接收调用方传入的当前调用指令和参数;业务中间层在缓存中匹配所述当前调用指令对应的数据模型;业务中间层获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;业务中间层将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。上述方案,通过业务中间层将业务底层与调用方隔离,调用方无需直接传入方法名或函数名,仅需通过传入当前调用指令,即可实现业务调用。当前调用指令经过业务中间层匹配对应的数据模型,并获取数据模型对应的类名、实体名和参数,以调用业务底层,实现业务调用。解决了若将业务代码与调用方隔离,则无法实现业务逻辑的技术问题。
[0089]
如图5本技术提供了一种业务调用的装置5,业务调用的装置5包括业务中间层和业务底层两个功能模块,所述业务中间层包括接收模块、匹配模块、获取模块和调用模块,所述业务底层包括执行模块,请参见图5,图5示出了本技术提供的一种业务调用的装置的示意图,如图5所示一种业务调用的装置包括:
[0090]
所述接收模块51,用于接收调用方传入的当前调用指令和参数;
[0091]
所述匹配模块52,用于在缓存中匹配所述当前调用指令对应的数据模型;
[0092]
所述获取模块53,用于获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;
[0093]
所述调用模块54,用于将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;
[0094]
所述执行模块55,用于基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。
[0095]
本技术提供的一种业务调用的装置,通过业务中间层接收调用方传入的当前调用指令和参数;业务中间层在缓存中匹配所述当前调用指令对应的数据模型;业务中间层获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;业务中间层将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。上述方案,通过业务中间层将业务底层与调用方隔离,调用方无需直接传入方法名或函数名,仅需通过传入当前调用指令,即可实现业务调用。当前调用指令经过业务中间层匹配对应的数据模型,并获取数据模型对应的类名、实体名和参数,以调用业务底层,实现业务调用。解决了若将业务代码与调用方隔离,则无法实现业务逻辑的技术问题。
[0096]
图6是本技术一实施例提供的一种终端设备的示意图。如图6所示,该实施例的一种终端设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如一种业务调用的方法程序。所述处理器60执行所述计算机程序62时实现上述各个一种业务调用的方法实施例中的步骤,例如图1所示的步骤101至步骤105。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各单元的功能,例如图5所示单元51至55的功能。
[0097]
示例性的,所述计算机程序62可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器61中,并由所述处理器60执行,以完成本技术。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述一种终端设备6中的执行过程。例如,所述计算机程序62可以被分割成各单元的具体功能如下:
[0098]
所述接收模块,用于接收调用方传入的当前调用指令和参数;
[0099]
所述匹配模块,用于在缓存中匹配所述当前调用指令对应的数据模型;
[0100]
所述获取模块,用于获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;
[0101]
所述调用模块,用于将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;
[0102]
所述执行模块,用于基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。
[0103]
所述终端设备中包括但不限于处理器60和存储器61。本领域技术人员可以理解,图6仅仅是一种终端设备6的示例,并不构成对一种终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种终端设备还可以包括输入输出设备、网络接入设备、总线等。
[0104]
所述处理器60可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0105]
所述存储器61可以是所述一种终端设备6的内部存储单元,例如一种终端设备6的硬盘或内存。所述存储器61也可以是所述一种终端设备6的外部存储设备,例如所述一种终端设备6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器61还可以既包括所述一种终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述一种漫游控制设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
[0106]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0107]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0108]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,既将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0109]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0110]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
[0111]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0112]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0113]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0114]
在本技术所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0115]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。
[0116]
应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0117]
还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0118]
如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于监测到”。类似地,短语“如果确定”或“如果监测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦监测到[所描述条件或事件]”或“响应于监测到[所描述条件或事件]”。
[0119]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0120]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0121]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
技术特征:
1.一种业务调用的方法,其特征在于,所述业务调用的方法应用于业务中间层和业务底层两个功能模块,所述业务调用方法包括:所述业务中间层接收调用方传入的当前调用指令和参数;所述业务中间层在缓存中匹配所述当前调用指令对应的数据模型;所述业务中间层获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;所述业务中间层将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;所述业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。2.如权利要求1所述的业务调用的方法,其特征在于,所述业务中间层在缓存中匹配所述当前调用指令对应的数据模型的步骤,包括:所述业务中间层获取缓存中的指令清单集;所述指令清单集中包括多个调用指令以及所述多个调用指令对应的数据模型;所述业务中间层在所述指令清单集中匹配所述当前调用指令对应的数据模型。3.如权利要求2所述的业务调用的方法,其特征在于,所述业务中间层获取缓存中的指令清单集的步骤,包括:在多个预存文件中筛选具有预设文件后缀的目标文件;若所述目标文件中的行首文字为第一预设文字,则扫描所述目标文件中行首文字为第二预设文字的目标文字行;所述行首文字是指文字行中的首位文字;获取所述目标文字行中预设符号的第一位置,获取所述行文字中位于所述第一位置之前的空格位置;将所述第一位置和所述空格位置之间对应的内容作为所述调用指令以及所述调用指令对应的数据模型。4.如权利要求1所述的业务调用的方法,其特征在于,所述业务中间层中的第一方法或第一函数均为公有方法或公有函数,所述业务底层中的第二方法或第二函数均为私有方法或私有函数。5.如权利要求1所述的业务调用的方法,其特征在于,在所述业务中间层在缓存中匹配所述当前调用指令对应的数据模型的步骤之后,还包括:若所述业务中间层在缓存中未匹配到所述当前调用指令对应的数据模型,则向所述调用方返回错误消息。6.如权利要求1所述的业务调用的方法,其特征在于,所述业务底层基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方的步骤,包括:所述业务底层基于所述参数执行所述目标方法或目标函数,并通过软件开发工具包sdk调用数据库和/或网络层,得到业务调用结果,并将所述业务调用结果传回所述调用方。7.如权利要求1所述的业务调用的方法,其特征在于,所述业务中间层包括指令接收器、指令清单集、指令解析器和业务底层调用函数;所述指令接收器用于接收调用方传入的当前调用指令和参数;
所述指令清单集用于存储多个调用指令以及所述多个调用指令对应的数据模型;所述指令解析器用于在缓存中匹配所述当前调用指令对应的数据模型,并获取所述数据模型的对应类名和实体名;所述业务底层调用函数用于将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数。8.一种业务调用的装置,其特征在于,所述业务调用的装置包括业务中间层和业务底层两个功能模块,所述业务中间层包括接收模块、匹配模块、获取模块和调用模块,所述业务底层包括执行模块,所述业务调用的装置包括:所述接收模块,用于接收调用方传入的当前调用指令和参数;所述匹配模块,用于在缓存中匹配所述当前调用指令对应的数据模型;所述获取模块,用于获取所述数据模型的对应类名和实体名;所述实体名包括方法名或函数名;所述调用模块,用于将所述类名、所述实体名和所述参数传入所述业务底层,并调用在所述类名下所述实体名对应的目标方法或目标函数;所述执行模块,用于基于所述参数执行所述目标方法或目标函数,得到业务调用结果,并将所述业务调用结果传回所述调用方。9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
技术总结
本申请适用于数据处理的技术领域,提供了一种业务调用的方法、装置及终端设备,所述业务调用的方法包括:业务中间层接收调用方传入的当前调用指令和参数;业务中间层在缓存中匹配当前调用指令对应的数据模型;业务中间层获取数据模型的对应类名和实体名;业务中间层将类名、实体名和参数传入所述业务底层,并调用实体名对应的目标方法或目标函数;业务底层基于参数执行目标方法或目标函数,得到业务调用结果,并将业务调用结果传回调用方。上述方案,通过业务中间层将业务底层与调用方隔离,调用方无需直接传入方法名或函数名,仅需通过传入当前调用指令,即可实现业务调用。解决了若将业务代码与调用方隔离,则无法实现业务逻辑的技术问题。技术问题。技术问题。
技术研发人员:张星亮 吴剑文
受保护的技术使用者:深圳市六度人和科技有限公司
技术研发日:2023.03.01
技术公布日:2023/7/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/