调用模块的接口调用方法、装置、计算机设备及存储介质转让专利

申请号 : CN202110702164.9

文献号 : CN113296987B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何辉秦雯玉

申请人 : 平安壹钱包电子商务有限公司

摘要 :

本发明涉及计算机开发领域,公开了一种调用模块的接口调用方法、装置、计算机设备及存储介质,包括:获取软件项目的业务模块并构建至少调用一个业务模块的接口;在软件项目的调用模块中构建启动器,使调用模块通过启动器调用接口,用以控制业务模块根据预设规则将获取的请求报文转化为响应报文;通过启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取响应报文中的响应体;通过启动器将响应体转化为返回值。本发明还涉及区块链技术,信息可存储于区块链节点中。本发明减少了调用接口所需的代码量,使软件项目中的调用模块能够直接调用软件项目中的接口,提高了对接口及其中业务模块的调用管理的效率。

权利要求 :

1.一种调用模块的接口调用方法,其特征在于,包括:

获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,其中,所述业务模块为用于完成指定任务的计算机模块;

在所述软件项目的调用模块中构建启动器,使所述调用模块通过所述启动器调用所述接口,用以控制所述业务模块根据预设规则将获取的请求报文转化为响应报文;所述在所述软件项目的调用模块中构建启动器,包括:获取所述软件项目的pom文件和调用模块,在所述pom文件中构建启动器,并在所述调用模块中构建用于运行所述启动器的启动注解;

在所述启动器中写入所述接口的接口名,用以绑定所述启动器和所述接口;

在所述启动器中构建逻辑线程,用于获取所述接口中各抽象类之间的逻辑关系;

通过所述启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取所述响应报文中的响应体;

通过所述启动器将所述响应体转化为返回值,将所述返回值发送至所述调用模块。

2.根据权利要求1所述的调用模块的接口调用方法,其特征在于,所述获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,包括:根据控制端发送的任务信息从所述软件项目中获取至少一个业务模块,并从所述业务模块中获取抽象类,其中,所述抽象类是定义所述业务模块调用功能的类;

根据所述任务信息将至少一个所述业务模块的抽象类聚合成类集合;

将所述类集合封装成所述接口,用于调用所述至少一个业务模块。

3.根据权利要求1所述的调用模块的接口调用方法,其特征在于,所述在所述软件项目的调用模块中构建启动器之后,所述方法还包括:接收控制端发送的实现类方法,将所述实现类方法配置在所述启动器中;在所述接口中制定用于运行所述实现类方法的实现注解,在所述实现注解的类名定义项中写入所述实现类方法的方法名,使所述接口与所述实现类方法关联;其中,所述实现类方法用于实现所述接口的接口方法,得到能够实例化的具体方法;

通过所述启动器将所述实现类方法作为所述接口方法的方法体,用以实现所述接口方法并得到实现方法;通过所述调用模块根据接收到的请求报文调用所述实现方法,使所述业务模块根据预设的规则将所述请求报文转为响应报文;其中,所述实现方法为具体方法。

4.根据权利要求3所述的调用模块的接口调用方法,其特征在于,所述在所述软件项目的调用模块中构建启动器之后,所述方法还包括:在所述启动器中构建扫描进程,并在所述扫描进程中写入所述实现方法的方法名,使所述实现方法与所述扫描进程关联。

5.根据权利要求4所述的调用模块的接口调用方法,其特征在于,所述扫描进程的构建方法,包括:在所述启动器中构建所述实现方法的代码提取线程和信息提取线程,其中,所述代码提取线程用于提取所述启动器调用所述实现类方法所获得的响应代码,所述信息提取线程用于提取所述响应报文中的响应体;

接收控制端根据所述实现方法发送的响应条件,根据所述响应条件在所述启动器中构建具有响应清单的结果判断线程;其中,所述响应清单中具有所述响应条件;

将所述代码提取线程、所述信息提取线程和所述结果判断线程整合成所述实现方法的扫描进程,使所述结果判断线程筛选出符合所述响应清单中的响应条件的响应体。

6.根据权利要求3所述的调用模块的接口调用方法,其特征在于,所述通过所述启动器将所述响应体转化为返回值之前,所述方法还包括:在所述启动器中构建与所述实现方法关联的返回函数,所述返回函数的构建方法包括:接收控制端发送的返回类型,并通过所述启动器的实现注解获得所述实现类方法;

在所述实现注解中构建返回值为所述返回类型的返回函数,使所述返回函数与所述实现类方法关联;所述返回函数用于将所述扫描进程筛选出的响应体转化为所述返回值;

所述通过所述启动器将所述响应体转化为返回值之后,所述方法还包括:将所述返回值上传至区块链中。

7.一种调用模块的接口调用装置,其特征在于,包括:

接口构建模块,用于获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,其中,所述业务模块为用于完成指定任务的计算机模块;

启动构建模块,用于在所述软件项目的调用模块中构建启动器,使所述调用模块通过所述启动器调用所述接口,用以控制所述业务模块根据预设规则将获取的请求报文转化为响应报文;

筛选提取模块,用于通过所述启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取所述响应报文中的响应体;

信息转化模块,用于通过所述启动器将所述响应体转化为返回值,将所述返回值发送至所述调用模块;

启动构建模块包括:

启动构建单元,用于获取所述软件项目的pom文件和调用模块,在所述pom文件中构建启动器,并在所述调用模块中构建用于运行所述启动器的启动注解;

接口绑定单元,用于在所述启动器中写入所述接口的接口名,用以绑定所述启动器和所述接口;

逻辑构建单元,用于在所述启动器中构建逻辑线程,用于获取所述接口中各抽象类之间的逻辑关系。

8.一种计算机设备,其包括内存、处理器以及存储在内存上并可在处理器上运行的计算机程序,其特征在于,所述计算机设备的处理器执行所述计算机程序时实现权利要求1至

6任一项所述调用模块的接口调用方法的步骤。

9.一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,其特征在于,所述可读存储介质存储的所述计算机程序被处理器执行时实现权利要求1至6任一项所述调用模块的接口调用方法的步骤。

说明书 :

调用模块的接口调用方法、装置、计算机设备及存储介质

技术领域

[0001] 本发明涉及计算机开发技术领域,尤其涉及一种调用模块的接口调用方法、装置、计算机设备及存储介质。

背景技术

[0002] 现有业内关于调用dubbo对软件项目进行开发,通常都是非常平淡化的操作,比如定义接口、接口调用、判断返参,这三板斧的操作数不胜数。
[0003] 例如:在软件项目中,调用模块是通过调用各业务模块的接口,使各业务模块运算请求报文生成响应报文,以达到所述请求所要达到的目的的;在此过程中,由于接口的接口方法是高度抽象的,故调用模块是无法直接调用所述接口的,比如说:所述接口是“查询接口”,其中的接口方法是“查询用户姓名信息”,在这里,调用模块只知道这个接口是用来查询用户信息的,但是不知道查询用户信息的实现方法,因此,为保证调用模块能够顺利调用接口并获得响应报文,通常需要编写:
[0004] 定义接口代码,用于对接口方法进行定义;这部分是接口方法的定义,因此是无法简化和避免的,也就是上述“查询用户姓名信息”的内容;
[0005] 接口调用代码,其通常为实现类,用于实现所述接口方法使所述接口成为实现方法,以便于调用模块能够根据所述实现方法调用所述接口,使各业务模块根据所述实现方法运算请求报文得到响应报文;例如:接口调用代码的含义是“根据用户ID查询用户姓名信息”,因此,通过所述接口调用代码则能够使接口方法转为实现方法。
[0006] 判断返参代码,用于对响应报文进行判断,例如:采用IF语句编写的含义是“如果返回代码是00000,则意味着业务模块生成的响应报文为成功”的代码。
[0007] 因此,发明人意识到,若要使调用模块能够调用各个业务模块的接口,则需要编写大量与各接口对应的定义接口代码、接口调用代码以及判断返参代码,导致开发代码量巨大,降低了开发效率。

发明内容

[0008] 本发明的目的是提供一种调用模块的接口调用方法、装置、计算机设备及存储介质,用于解决现有技术存在的开发代码量巨大,降低了开发效率的问题。
[0009] 为实现上述目的,本发明提供一种调用模块的接口调用方法,包括:
[0010] 获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,其中,所述业务模块为用于完成指定任务的计算机模块;
[0011] 在所述软件项目的调用模块中构建启动器,使所述调用模块通过所述启动器调用所述接口,用以控制所述业务模块根据预设规则将获取的请求报文转化为响应报文;
[0012] 通过所述启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取所述响应报文中的响应体;
[0013] 通过所述启动器将所述响应体转化为返回值,将所述返回值发送至所述调用模块。
[0014] 上述方案中,所述获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,包括:
[0015] 根据控制端发送的任务信息从所述软件项目中获取至少一个业务模块,并从所述业务模块中获取抽象类,其中,所述抽象类是定义所述业务模块调用功能的类;
[0016] 根据所述任务信息将至少一个所述业务模块的抽象类聚合成类集合;
[0017] 将所述类集合封装成所述接口,用于调用所述至少一个业务模块。
[0018] 上述方案中,所述在所述软件项目的调用模块中构建启动器,包括:
[0019] 获取所述软件项目的pom文件和调用模块,在所述pom文件中构建启动器,并在所述调用模块中构建用于运行所述启动器的启动注解;
[0020] 在所述启动器中写入所述接口的接口名,用以绑定所述启动器和所述接口;
[0021] 在所述启动器中构建逻辑线程,用于获取所述接口中各所述抽象类之间的逻辑关系。
[0022] 上述方案中,所述在所述软件项目的调用模块中构建启动器之后,所述方法还包括:
[0023] 接收控制端发送的实现类方法,将所述实现类方法配置在所述启动器中;在所述接口中制定用于运行所述实现类方法的实现注解,在所述实现注解的类名定义项中写入所述实现类方法的方法名,使所述接口与所述实现类方法关联;其中,所述实现类方法用于实现所述接口的接口方法,得到能够实例化的具体方法;
[0024] 通过所述启动器将所述实现类方法作为所述接口方法的方法体,用以实现所述接口方法并得到实现方法;通过所述调用模块根据接收到的请求报文调用所述实现方法,使所述业务模块根据预设的规则将所述请求报文转为响应报文;其中,所述实现方法为具体方法。
[0025] 上述方案中,所述在所述软件项目的调用模块中构建启动器之后,所述方法还包括:
[0026] 在所述启动器中构建扫描进程,并在所述扫描进程中写入所述实现方法的方法名,使所述实现方法与所述扫描进程关联。
[0027] 上述方案中,所述扫描进程的构建方法,包括:
[0028] 在所述启动器中构建所述实现方法的代码接收线程和信息提取线程,其中,所述代码提取线程用于提取所述启动器调用所述实现类方法所获得的响应代码,所述信息提取线程用于提取所述响应报文中的响应体;
[0029] 接收控制端根据所述实现方法发送的响应条件,根据所述响应条件在所述启动器中构建具有响应清单的结果判断线程;其中,所述响应清单中具有所述响应条件;
[0030] 将所述代码提取线程、所述信息提取线程和所述结果判断线程整合成所述实现方法的扫描进程,使所述结果判断线程筛选出符合所述响应清单中的响应条件的响应体。
[0031] 上述方案中,所述通过所述启动器将所述响应体转化为返回值之前,所述方法还包括:
[0032] 在所述启动器中构建与所述实现方法关联的返回函数,所述返回函数的构建方法包括:
[0033] 接收控制端发送的返回类型,并通过所述启动器的实现注解获得所述实现类方法;
[0034] 在所述实现注解中构建返回值为所述返回类型的返回函数,使所述返回函数与所述实现类方法关联;所述返回函数用于将所述扫描进程筛选出的响应体转化为所述返回值;
[0035] 所述通过所述启动器将所述响应体转化为返回值之后,所述方法还包括:
[0036] 将所述返回值上传至区块链中。
[0037] 为实现上述目的,本发明还提供一种调用模块的接口调用装置,包括:
[0038] 接口构建模块,用于获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,其中,所述业务模块为用于完成指定任务的计算机模块;
[0039] 启动构建模块,用于在所述软件项目的调用模块中构建启动器,使所述调用模块通过所述启动器调用所述接口,用以控制所述业务模块根据预设规则将获取的请求报文转化为响应报文;
[0040] 筛选提取模块,用于通过所述启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取所述响应报文中的响应体;
[0041] 信息转化模块,用于通过所述启动器将所述响应体转化为返回值,将所述返回值发送至所述调用模块。
[0042] 为实现上述目的,本发明还提供一种计算机设备,其包括内存、处理器以及存储在内存上并可在处理器上运行的计算机程序,所述计算机设备的处理器执行所述计算机程序时实现上述调用模块的接口调用方法的步骤。
[0043] 为实现上述目的,本发明还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述可读存储介质存储的所述计算机程序被处理器执行时实现上述调用模块的接口调用方法的步骤。
[0044] 本发明提供的调用模块的接口调用方法、装置、计算机设备及存储介质,通过定义用于调用所述业务模块的接口,使外部设备能够通过所述接口调用所述业务模块;通过在软件项目中构建用于调用接口的启动器,极大的减少了调用接口所需的代码量,使软件项目中的调用模块能够直接调用软件项目中的接口,而无需使用大量的实现方法代码对所述接口进行调用。
[0045] 通过构建扫描进程实现了每个实现类方法的调用成功情况的可配置化,保证了实现类方法的可用性和可靠性;又由于扫描进程是具有筛选符合响应条件的响应体的计算机程序,因此,仅需通过配置所述响应条件即可调整所述扫描进程,而无需编写大量的反映响应条件及在所述响应条件下操作的响应代码,降低了开发强度。通过在启动器中构建管理规则所述启动器中具有管理规则,只需要所述管理规则中配置实现方法,即可对所述启动器调用接口的方法进行管理,而无需编写大量代码对接口进行配置,提高了对接口及其中业务模块的调用管理的效率。同时,通过最后将符合响应条件的响应体转化为返回值,避免了当前因对每个实现类方法的响应体进行转化而导致返回值转化频繁,代码运行效率低的情况发生。

附图说明

[0046] 图1为本发明调用模块的接口调用方法实施例一的流程图;
[0047] 图2为本发明调用模块的接口调用方法实施例二中调用模块的接口调用方法的环境应用示意图;
[0048] 图3是本发明调用模块的接口调用方法实施例二中调用模块的接口调用方法的具体方法流程图;
[0049] 图4为本发明调用模块的接口调用装置实施例三的程序模块示意图;
[0050] 图5为本发明计算机设备实施例四中计算机设备的硬件结构示意图。

具体实施方式

[0051] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052] 本发明提供的调用模块的接口调用方法、装置、计算机设备及存储介质,适用于计算机开发技术领域,为提供一种基于接口构建模块、启动构建模块、筛选提取模块、信息转化模块的接口调用方法。本发明通过获取软件项目的业务模块并构建至少调用一个业务模块的接口;在软件项目的调用模块中构建启动器,使调用模块通过启动器调用接口,用以控制业务模块根据预设规则将获取的请求报文转化为响应报文;通过启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取响应报文中的响应体;通过启动器将响应体转化为返回值。
[0053] 实施例一:
[0054] 请参阅图1,本实施例的一种调用模块的接口调用方法,包括:
[0055] S101:获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,其中,所述业务模块为用于完成指定任务的计算机模块;
[0056] S102:在所述软件项目的调用模块中构建启动器,使所述调用模块通过所述启动器调用所述接口,用以控制所述业务模块根据预设规则将获取的请求报文转化为响应报文;
[0057] S104:通过所述启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取所述响应报文中的响应体;
[0058] S106:通过所述启动器将所述响应体转化为返回值,将所述返回值发送至所述调用模块。
[0059] 在示例性的实施例中,软件项目中的业务模块是用于实现指定任务的计算机模块,例如:所述业务模块包括,用于查询用户姓名信息的业务模块、用于查询用户联系信息的业务模块等等;所述接口记载了所有业务模块的方法特征,故能够调用所有业务模块以实现对应的业务,例如,通过所述接口调用用于查询用户姓名的第一查询模块,实现查询用户信息,通过所述接口调用用于查询用户联系信息的第二查询模块,实现用户联系信息的查询。相比于现有技术,本申请将多个业务模块的接口整合成了一个接口,极大的降低了代码量。
[0060] 由于接口方法是不具有方法体的抽象方法,因此,在被实现之前均是无法被调用模块直接调用的,故当前调用接口方法之前需要编写大量用于实现所述接口方法的实现类,一旦软件项目需要频繁更新时,则需要开发人员编写大量的实现类用以实现所述接口,使所述接口能够被调用模块调用。本申请通过启动器中配置的与接口的接口方法关联的实现类方法,作为所述接口方法的方法体以实现所述接口方法,得到能够调用模块调用的实现方法。因此,相比于现有技术中需要编写大量的实现类的方式相比,本申请仅需通过在启动器中配置实现类方法,即可根据所述实现类方法实现所述接口方法并得到实现方法;例如:实现类方法是“根据用户ID查询用户姓名信息”,那么,直接将其实现接口方法“查询用户信息”即可得到实现方法。
[0061] 通过可配置的扫描进程对响应报文进行筛选,以便于将各业务模块响应条件录入到扫描进程之内,避免了编写大量的判断返参代码,而仅需配置具有响应条件的响应清单,并运行扫描线程即可实现所述判断返参代码的运行效果,极大的降低了代码的编写量,同时,由于响应清单是通过配置响应条件获得的,因此,提高了响应条件的配置及修改效率。其中,所述响应代码是反映所述响应报文状态属性的数据,所述响应体是指所述响应报文传递的内容信息。
[0062] 通过启动器将符合响应条件的响应报文中的响应体转为返回值,避免了当前调用各业务模块生成响应报文时,需要频繁的对各响应报文中的响应体进行转换,导致因转换频繁造成服务器算力消耗过大的情况发生。
[0063] 实施例二:
[0064] 本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
[0065] 下面,以在运行有调用模块的接口调用方法的服务器中,通过构建接口和启动器,使调用模块能够直接调用接口及业务模块并获得返回值为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。
[0066] 图2示意性示出了根据本申请实施例二的调用模块的接口调用方法的环境应用示意图。
[0067] 在示例性的实施例中,调用模块的接口调用方法所在的服务器2通过网络3分别连接控制端4;所述服务器2可以通过一个或多个网络3提供服务,网络3可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络3可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络3可以包括无线链路,例如蜂窝链路,卫星链路,Wi‑Fi链路和/或类似物;所述控制端4可为智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。
[0068] 图3是本发明一个实施例提供的一种调用模块的接口调用方法的具体方法流程图,该方法具体包括步骤S201至S206。
[0069] S201:获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,其中,所述业务模块为用于完成指定任务的计算机模块。
[0070] 本步骤中,软件项目中的业务模块是用于实现指定任务的计算机模块,例如:所述业务模块包括,用于查询用户姓名信息的业务模块、用于查询用户联系信息的业务模块等等;所述接口记载了所有业务模块的方法特征,故能够调用所有业务模块以实现对应的业务,例如,通过所述接口调用用于查询用户姓名的第一查询模块,实现查询用户信息,通过所述接口调用用于查询用户联系信息的第二查询模块,实现用户联系信息的查询。相比于现有技术,本申请将多个业务模块的接口整合成了一个接口,极大的降低了代码量。
[0071] 在一个优选的实施例中,所述获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,包括:
[0072] S11:根据控制端发送的任务信息从所述软件项目中获取至少一个业务模块,并从所述业务模块中获取抽象类,其中,所述抽象类是定义所述业务模块调用功能的类。
[0073] 本步骤中,所述任务信息包含了为完成某一指定任务需调用软件项目中的业务模块的名称,所述抽象类是定义所述业务模块的调用功能的服务类。
[0074] S12:根据所述任务信息将至少一个所述业务模块的抽象类聚合成类集合。
[0075] 本步骤中,采用Facade模式将所述业务模块中的抽象类进行聚合处理得到类集合,并对所述类集合进行封装得到所述至少一个业务模块对外的接口,获得相对于所述业务模块更高层的接口,所述接口用于调用所述至少一个业务模块,并将客户的请求代理给适当的业务模块。对各业务模块的抽象类整合成一整体的类集合,使得在调用各抽象类时,无需编写大量的代码依次调用各业务模块,再调用各业务模块中的抽象类,因此,极大的降低了代码量。
[0076] S13:将所述类集合封装成所述接口,用于调用所述至少一个业务模块。
[0077] 本步骤中,基于Facade模式(外观模式)对所述类集合进行打包封装形成一个统一的接口,使所述接口能够调用所述业务模块中的抽象类。
[0078] 于本实施例中,采用Facade模式将所述业务模块中的抽象类进行聚合处理得到类集合,并对所述类集合进行封装得到所述至少一个业务模块对外的接口,获得相对于所述业务模块更高层的接口,所述接口用于调用所述至少一个业务模块,并将客户的请求代理给适当的业务模块,并调用所述业务模块中的抽象类执行所述请求代理,并回馈相应的结果;其中,所述Facade模式是一种用于将各个业务模块的接口汇聚在一起,定义一个统一的接口方便客户使用的计算机管理方法,其满足“迪米特法则”,即客户不需要了解子系统,只需要知道Facade模式封装的类即可以使用所有业务模块。
[0079] 因此,本实施例通过Facade模式隔离了客户端和业务模块,将客户端与业务模块解耦,一旦业务模块中出现修改时,仅需修改所述接口中封装的类,而无需使客户端修改代码;并且,通过Facade模式所生成的接口可以让业务模块中的类无需实例化而直接进行静态方式调用,因此,提高了软件项目中业务模块的调用开发效率。
[0080] 进一步地,所述将至少一个所述业务模块的抽象类聚合成类集合,包括:
[0081] S121:提取所述任务信息中的逻辑流程,所述逻辑流程包括为完成所述任务信息所需调用的抽象类,及各所述抽象类之间的逻辑关系。
[0082] 本步骤中,所述任务信息中所记载的逻辑流程中,包含了控制端为完成某一指定任务所需调用的抽象类,以及各所述抽象类之间的逻辑关系,例如:为完成指定任务M,需要依次调用抽象类A、抽象类B和抽象类C。
[0083] S122:按照所述逻辑流程排列所述抽象类,并构建各所述抽象类之间的逻辑关系,使各所述抽象类聚合成类集合。
[0084] 本步骤中,按照所述抽象类的逻辑流程,构建抽象类之间的逻辑关系,例如:先调用抽象类A,在调用抽象类B,最后调用抽象类C,那么,最终聚合成的抽象类则为:顺序1‑抽象类A,顺序2‑抽象类B,顺序3‑抽象类C。
[0085] S202:在所述软件项目的调用模块中构建启动器,使所述调用模块通过所述启动器调用所述接口,用以控制所述业务模块根据预设规则将获取的请求报文转化为响应报文。
[0086] 由于接口方法是不具有方法体的抽象方法,因此,在被实现之前均是无法被调用模块直接调用的,故当前调用接口方法之前需要编写大量用于实现所述接口方法的实现类,一旦软件项目需要频繁更新时,则需要开发人员编写大量的实现类用以实现所述接口,使所述接口能够被调用模块调用。本申请通过启动器中配置的与接口的接口方法关联的实现类方法,作为所述接口方法的方法体以实现所述接口方法,得到能够调用模块调用的实现方法。因此,相比于现有技术中需要编写大量的实现类的方式相比,本申请仅需通过在启动器中配置实现类方法,即可根据所述实现类方法实现所述接口方法并得到实现方法;例如:实现类方法是“根据用户ID查询用户姓名信息”,那么,直接将其实现接口方法“查询用户信息”即可得到实现方法。
[0087] 在一个优选的实施例中,所述在所述软件项目的调用模块中构建启动器,包括:
[0088] S21:获取所述软件项目的pom文件和调用模块,在所述pom文件中构建启动器,并在所述调用模块中构建用于运行所述启动器的启动注解;
[0089] 本步骤中,通过在所述软件项目的pom文件中构建启动器,采用dubbo‑feign‑spring‑boot‑starter作为所述启动器,所述pom文件是指项目对象模型,其为XML文件,是Maven中工作的基本组成单位,并保存在软件项目(maven项目)的基本目录中,所述pom文件包含了所述软件项目的所有计算机规则。所述调用模块是软件项目(maven项目)中用于调用接口的计算机模块,例如:通过构建启动注解@dubboFeignClient{},作为所述调用模块运行所述启动器的方法,使InvokeServiceImpl业务模块能够通过所述注解调用启动器中的接口。
[0090] S22:在所述启动器中写入所述接口的接口名,用以绑定所述启动器和所述接口。
[0091] 本步骤中,通过feign方法将启动器和接口绑定,其中,feign方法是声明式的web service客户端,用于实现不同服务器接口之间的相互调用,即跨域请求,其类似controller调用service,进而实现当调用所述启动器时,即可调用与其绑定的接口。
[0092] 示例性地,所述启动器的代码如下所示:
[0093] @dubboFeignClient{}
[0094] UserFacadeClient.java
[0095] 其中,@dubboFeignClient{}为用于运行启动器的注解,UserFacadeClient.java是与所述启动器绑定的接口的接口名。
[0096] S23:在所述启动器中构建逻辑线程,用于获取所述接口中各所述抽象类之间的逻辑关系。
[0097] 本步骤中,通过在启动器中构建逻辑线程,以便于所述启动器在调用所述接口之前即可获知各所述抽象类之间的逻辑关系,使所述启动器根据所述逻辑关系调用所述接口中的抽象类,用以最终能够顺利的获得其所需的响应报文。
[0098] 在一个优选的实施例中,所述在所述软件项目的调用模块中构建启动器之后,所述方法还包括:
[0099] S24:接收控制端发送的实现类方法,将所述实现类方法配置在所述启动器中;在所述接口中制定用于运行所述实现类方法的实现注解,在所述实现注解的类名定义项中写入所述实现类方法的方法名,使所述接口与所述实现类方法关联;其中,所述实现类方法用于实现所述接口的接口方法,得到能够实例化的具体方法。
[0100] 具体地,通过在实现注解@DubboMethod中配置获得的实现类方法,使调用模块在调用接口方法时“Public interface UserFacadeClient”,能够直接通过实现类方法“queryUserInfoByUserId”实现接口方法“queryUserInfo”,避免了撰写大量的实现类代码导致代码量过大,造成开发效率过低的情况发生。
[0101] 示例性地,Public interface UserFacadeClient{/这部分是对接口的定义/[0102] @DubboMethod(remoteMethodName=”queryUserInfoByUserId”./这部分是通过实现注解对实现类方法进行了定义/
[0103] remoteMethodParamsTypeName={}./这部分对实现方法参数进行了定义/[0104] Timeout='5seconds'./这部分是回应超时参数/
[0105] Retries=1)./这部分是重试次数参数/
[0106] Public QueryUserInfoRespqueryUserInfo(QueryUserInfoReqreq).
[0107] S25:通过所述启动器将所述实现类方法作为所述接口方法的方法体,用以实现所述接口方法并得到实现方法;通过所述调用模块根据接收到的请求报文调用所述实现方法,使所述业务模块根据预设的规则将所述请求报文转为响应报文;其中,所述实现方法为具体方法。
[0108] 本步骤中,通过启动器中配置的与接口的接口方法关联的实现类方法,作为所述接口方法的方法体以实现所述接口方法,得到能够调用模块调用的实现方法,进而使各模块根据预设的规则运算所述请求报文得到响应报文。所以,相比于现有技术中需要编写大量的实现类的方式相比,本申请仅需通过在启动器中配置实现类方法,即可根据所述实现类方法实现所述接口方法并得到实现方法;例如:实现类方法是“根据用户ID查询用户姓名信息”,那么,直接将其实现接口方法“查询用户信息”即可得到实现方法。
[0109] 在一个优选的实施例中,通过所述启动器将所述实现类方法作为所述接口方法的方法体,用以实现所述接口方法并得到实现方法,包括:
[0110] S25‑1:通过所述调用模块运行启动注解,用于启动所述启动器并获取与所述启动器绑定的接口。
[0111] 本步骤中,通过在所述软件项目的pom文件中构建启动器,采用dubbo‑feign‑spring‑boot‑starter作为所述启动器,所述pom文件是指项目对象模型,其为XML文件,是Maven中工作的基本组成单位,并保存在软件项目(maven项目)的基本目录中,所述pom文件包含了所述软件项目的所有计算机规则。所述调用模块是软件项目(maven项目)中用于调用接口的计算机模块,例如:InvokeServiceImpl业务模块;通过构建启动注解@dubboFeignClient{},作为所述调用模块运行所述启动器的方法,使InvokeServiceImpl业务模块能够通过所述注解调用启动器中的接口。
[0112] S25‑2:通过所述启动器运行实现注解,用于获得与所述接口关联的实现类方法,并将所述实现类方法作为所述接口方法的方法体,以实现所述接口的接口方法得到实现方法。
[0113] 于本实施例中,调用模块在调用UserFacadeClient接口时,运行实现注解@DubboMethod,用于在实现注解中获取实用类方法“queryUserInfoByUserId”,通常的,在实现注解中仅需记载实用类方法的方法名,即可从启动器中获取与该方法名对应的实用类方法,即:remotemethodname=“queryUserInfoByUserId”,进而实现调用模块在调用接口方法时“Public  interface  UserFacadeClient”,能够直接通过实现类方法“queryUserInfoByUserId”实现接口方法“queryUserInfo”,避免了撰写大量的实现类代码导致代码量过大,造成开发效率过低的情况发生。
[0114] S203:在所述启动器中构建扫描进程,并在所述扫描进程中写入所述实现方法的方法名,使所述实现方法与所述扫描进程关联。
[0115] 本步骤中,通过在启动器中构建扫描进程,使调用模块在运行启动注解@dubboFeignClient{}时,将扫描进程直接配置给所述实现方法,使得调用模块通过所述实现方法并根据请求报文调用业务模块时,能够直接通过所述扫描进程对所述业务模块的响应报文进行筛选,而无需开发人员编写大量的针对响应报文的识别筛选的流程及执行代码。
[0116] 需要说明的是,所述Dubbo是用于使应用可通过高性能的RPC实现服务的输出和输入功能,并可以和Spring框架无缝集成的一款高性能、轻量级的开源Java RPC框架;feign方法是声明式的web service客户端,用于实现不同服务器接口之间的相互调用,即跨域请求,其类似controller调用service。spring‑boot‑starter是基于spring boot框架用于集成maven项目中所有依赖的计算机模块。InvokeServiceImpl业务模块(impl的全称为implement)是在Java开发中处于controller层(其中,后端框架,如:mvc框架,通常包括model层、view层和controller层,即模型层、视图层、和控制层)的service(即:控制层的服务业务模块)下,用于存放接口的实现类并调用所述实现类的计算机模块。
[0117] 在一个优选的实施例中,所述扫描进程的构建方法,包括:
[0118] S31:在所述启动器中构建所述实现方法的代码接收线程和信息提取线程,其中,所述代码提取线程用于提取所述启动器调用所述实现类方法所获得的响应代码,所述信息提取线程用于提取所述响应报文中的响应体。
[0119] 本步骤中,通过定义类名准确的调用为完成任务所需调用的实现类方法,并配置与所述实现类方法对应的报文接收线程和信息提取线程,使得启动器仅需通过预先配置好的线程提取所述响应报文和所述响应体,而无需开发人员编写大量的代码对各实现类方法的信息提取方法进行定义,极大的降低了开发代码量,降低了开发强度。
[0120] S32:接收控制端根据所述实现方法发送的响应条件,根据所述响应条件在所述启动器中构建具有响应清单的结果判断线程;其中,所述响应清单中具有所述响应条件。
[0121] 由于各实现类方法的调用结果的调用成功条件通常是不同的,因此,本步骤根据控制端发送的响应条件,在各实现类方法中构建具有响应清单的结果判断线程,所述响应清单中记载了符合所述实现类方法调用成功情况的响应条件,因此,实现了每个实现类方法的调用成功情况均是可配置的,保证了实现类方法的可用性和可靠性。
[0122] S33:将所述代码提取线程、所述信息提取线程和所述结果判断线程整合成所述实现方法的扫描进程,使所述结果判断线程筛选出符合所述响应清单中的响应条件的响应体。
[0123] 由于软件项目中的接口的实现方法大多是相同的,如果编写每个接口的实现方法,将会导致软件项目中出现大量重复代码,严重降低了软件开发效率;因此,本实施例仅需控制端发送类名和响应条件,即可对接口中各实现类方法进行配置并最终生成扫描进程,而无需编写大量具有逻辑关系的代码对各实现类方法进行定义,将极大的降低了软件项目中的代码量,极大的提高了软件开发效率。
[0124] 进一步地,所述将所述报文接收线程、所述信息提取线程和所述结果判断线程整合成所述实现类方法的扫描进程之后,所述方法还包括:
[0125] S34:在所述启动器中构建用于开启和关闭所述扫描进程的扫描开关,根据控制端发送的开关信息控制所述扫描开关开启或关闭所述扫描进程。
[0126] 由于有的实现类方法是无需进行响应体的提取以及响应结果的判断的,因此,为保证启动器相对于各种实现类方法的适用范围,本步骤通过在启动器中构建用于开启和关闭所述扫描进程的扫描开关,以便于对需要进行响应体提取和/或响应结果判断的实现类方法开放扫描进程,并对无需进行响应体提取和/或相应结果判断的实现类方法关闭扫描进程的方式,保证启动器对各种实现类方法的适应性。
[0127] 示例性地,所述扫描进程如下所示:
[0128] @dubboFeignClient{/这部分是监听所述启动器调用所述接口中的实现类方法所需的扫描注解/
[0129] remoteClass=com.xxx.UserFacade.class./这部分是定义实现类方法的类名/[0130] needResultJudge=true./对于所述实现类方法的响应报文是否需要进行响应体提取和/或响应结果判断的扫描开关/
[0131] resultJudage=@DubboFeignClient.ResultJudge(
[0132] RemoteCodeNode=”respCode”./这部分获取响应报文,即:所述报文接收线程/[0133] RemoteMsgNode=”respMemo”./这部分是获取响应报文中的响应体,用于响应报文所要传达主体信息,即:所述信息提取线程/
[0134] RemoteCodeSuccValuelist={“000000”})/这部分是具有响应清单的结果判断线程,其中,“000000”为响应条件/
[0135] UserFacadeClient.java/与所述启动器绑定的接口的接口名/
[0136] Public interface UserFacadeClient{
[0137] Public QueryUserInfoRespqueryUserInfo(QueryUserInfoReqreq).
[0138] }/这部分public interface+接口名定义了启动器调用接口及所述接口中的抽象方法/。
[0139] S204:通过所述启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取所述响应报文中的响应体;
[0140] 本步骤中,通过可配置的扫描进程对响应报文进行筛选,以便于将各业务模块响应条件录入到扫描进程之内,避免了编写大量的判断返参代码,而仅需配置具有响应条件的响应清单,并运行扫描线程即可实现所述判断返参代码的运行效果,极大的降低了代码的编写量,同时,由于响应清单是通过配置响应条件获得的,因此,提高了响应条件的配置及修改效率。其中,所述响应代码是反映所述响应报文状态属性的数据,所述响应体是指所述响应报文传递的内容信息。
[0141] 具体地,所述扫描进程的运行步骤包括:
[0142] S41:判断所述启动器是否接收到所述实现类方法对应的业务模块发送的响应报文。
[0143] S42:若是,则获取所述响应报文及所述响应报文中的响应体。
[0144] S43:若否,则认定所述实现类方法调用失败;
[0145] S44:判断所述响应体是否属于所述响应清单;
[0146] S45:若是,则判定所述响应体符合响应条件;
[0147] S46:若否,则判定所述响应体不符合响应条件,并认定所述实现类方法调用失败。
[0148] S205:在所述启动器中构建与所述实现方法关联的返回函数,所述返回函数的构建方法包括:
[0149] S51:接收控制端发送的返回类型,并通过所述启动器的实现注解获得所述实现类方法;
[0150] S52:在所述实现注解中构建返回值为所述返回类型的返回函数,使所述返回函数与所述实现类方法关联;所述返回函数用于将所述扫描进程筛选出的响应体转化为所述返回值。
[0151] 进一步地,所述根据所述方法信息在所述启动器中构建以所述返回类的实例为所述返回值的返回函数之后,所述方法还包括:
[0152] S53:接收控制端发送的类型信息,将所述类型信息写入所述实现注解的实现方法参数定义项中,用于定义所述实现方法的参数类型。
[0153] 本步骤中,将控制端发送的类型信息写入所述启动器的实现方法参数定义项“remoteMethodParamsTypeName”中,用以对实现方法的参数类型进行定义。
[0154] S54:接收控制端发送的超时信息,将所述超时信息写入所述实现注解的超时定义项中,用于定义所述实现方法运行时间的时间上限。
[0155] 本步骤中,通过将所述超时信息'5seconds',录入到超时定义项Timeout中,用于定义所述实现方法运行时间的时间上限。
[0156] S55:接收控制端发送的重试信息,将所述重试信息写入所述实现注解的重试定义项中,用于定义所述实现方法运行次数的次数上限。
[0157] 本步骤中,通过将所述重试信息2录入到重试定义项Retries中,用于定义所述实现方法的运行次数上线,即:所述实现方法的调用重试调用次数最大为2.
[0158] 在示例性的实施例中,所述实现注解如下所示:
[0159] Public interface UserFacadeClient{
[0160] @DubboMethod(remoteMethodName=”queryUserInfoByUserId”./这部分对实现类方法进行了定义/
[0161] remoteMethodParamsTypeName={}./这部分对实现方法参数进行了定义/[0162] Timeout='5seconds'./这部分是回应超时参数/
[0163] Retries=1)./这部分是重试次数参数/
[0164] Public QueryUserInfoRespqueryUserInfo(QueryUserInfoReqreq).
[0165] 因此,只需要在扫描进程中编辑接口名,即可配置与所述启动器绑定的接口,进而实现快速配置接口的技术效果,而无需编写大量代码对接口进行配置。同时,只需要在实现注解中构建控制端所需的定义项,用以对扫描进程中任一接口进行管理配置,以实现对所述接口的参数类型、响应超时和重试此时进行管理,实现了快速高效的对接口进行管理,而无需编写大量配置代码的技术效果。
[0166] 具体地,通过以下方法根据所述时间上限和次数上限限制所述启动器:
[0167] M1:在所述启动器中构建计时线程和计数线程,其中,所述计时线程用于记录根据所述请求报文运行所述实现方法的运行时间,所述计数线程用于记录所述实现方法的运行次数。
[0168] M2:在所述启动器中构建时间判断进程,用于获取所述计时线程中的运行时间以及所述实现注解中的时间上限,及在所述运行时间超过所述时间上限时,控制所述启动器停止运行所述实现方法并回调。
[0169] M3:在所述启动器中构建次数判断进程,用于获取所述技术线程中的运行次数以及所述实现注解中的次数上限,及在所述运行次数超过所述次数上限时,控制所述启动器禁止运行调用所述接口的实现方法。
[0170] S206:通过所述启动器将所述响应体转化为返回值,将所述返回值发送至所述调用模块。
[0171] 本步骤中,通过启动器将符合响应条件的响应报文中的响应体转为返回值,所述调用模块在接收到所述返回值后,将所述返回值转发至向所述业务模块提供请求报文的客户端;避免了当前调用各业务模块生成响应报文时,需要频繁的对各响应报文中的响应体进行转换,导致因转换频繁造成服务器算力消耗过大的情况发生。
[0172] 具体地,所述通过所述启动器将所述响应体转化为返回值,包括:
[0173] S61:获取与所述实现类关联的返回函数。
[0174] S62:调用所述返回函数将所述响应体转化为返回值。
[0175] 于本实施例中,通过public方法结合所述返回类的方式构建所述返回函数,通过所述返回函数能够将所述实现方法中获取的符合响应条件的响应体,转化为所述返回值。例如:Public QueryUserInfoRespqueryUserInfo(QueryUserInfoReqreq).这部分代码表达了:通过queryUserInfo(QueryUserInfoReqreq)方法(即:所述实现方法),得到以QueryUserInfoResp类(即:所述返回类)的实例为返回值。
[0176] 优选的,所述通过所述启动器将所述响应体转化为返回值之后,所述方法还包括:
[0177] 将所述返回值上传至区块链中。
[0178] 需要说明的是,基于返回值得到对应的摘要信息,具体来说,摘要信息由返回值进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。使用者设备可以从区块链中下载得该摘要信息,以便查证返回值是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0179] 实施例三:
[0180] 请参阅图4,本实施例的一种调用模块的接口调用装置1,包括:
[0181] 接口构建模块11,用于获取软件项目的业务模块并构建至少调用一个所述业务模块的接口,其中,所述业务模块为用于完成指定任务的计算机模块;
[0182] 启动构建模块12,用于在所述软件项目的调用模块中构建启动器,使所述调用模块通过所述启动器调用所述接口,用以控制所述业务模块根据预设规则将获取的请求报文转化为响应报文;
[0183] 筛选提取模块14,用于通过所述启动器内配置的扫描进程筛选出符合预置响应条件的响应报文,并提取所述响应报文中的响应体;
[0184] 信息转化模块16,用于通过所述启动器将所述响应体转化为返回值,将所述返回值发送至所述调用模块。
[0185] 可选的,接口构建模块11包括:
[0186] 类提取单元111,用于根据控制端发送的任务信息从所述软件项目中获取至少一个业务模块,并从所述业务模块中获取抽象类,其中,所述抽象类是定义所述业务模块调用功能的类。
[0187] 类聚合单元112,用于根据所述任务信息将至少一个所述业务模块的抽象类聚合成类集合。
[0188] 类封装单元113,用于将所述类集合封装成所述接口,用于调用所述至少一个业务模块。
[0189] 可选的,启动构建模块12包括:
[0190] 启动构建单元121,用于获取所述软件项目的pom文件和调用模块,在所述pom文件中构建启动器,并在所述调用模块中构建用于运行所述启动器的启动注解。
[0191] 接口绑定单元122,用于在所述启动器中写入所述接口的接口名,用以绑定所述启动器和所述接口。
[0192] 逻辑构建单元123,用于在所述启动器中构建逻辑线程,用于获取所述接口中各所述抽象类之间的逻辑关系。
[0193] 可选的,启动构建模块12包括:
[0194] 类方法定义单元124,用于接收控制端发送的实现类方法,将所述实现类方法配置在所述启动器中;在所述接口中制定用于运行所述实现类方法的实现注解,在所述实现注解的类名定义项中写入所述实现类方法的方法名,使所述接口与所述实现类方法关联;其中,所述实现类方法用于实现所述接口的接口方法,得到能够实例化的具体方法。
[0195] 方法实现单元125,用于通过所述启动器将所述实现类方法作为所述接口方法的方法体,用以实现所述接口方法并得到实现方法;通过所述调用模块根据接收到的请求报文调用所述实现方法,使所述业务模块根据预设的规则将所述请求报文转为响应报文;其中,所述实现方法为具体方法。
[0196] 可选的,调用模块的接口调用装置1还包括:
[0197] 扫描构建模块13,用于在所述启动器中构建扫描进程,并在所述扫描进程中写入所述实现方法的方法名,使所述实现方法与所述扫描进程关联。
[0198] 可选的,调用模块的接口调用装置1还包括:
[0199] 函数构建模块15,用于在所述启动器中构建与所述实现方法关联的返回函数,所述函数构建模块15包括:
[0200] 类方法识别单元151,用于接收控制端发送的返回类型,并通过所述启动器的实现注解获得所述实现类方法;
[0201] 函数构建单元152,用于在所述实现注解中构建返回值为所述返回类型的返回函数,使所述返回函数与所述实现类方法关联;所述返回函数用于将所述扫描进程筛选出的响应体转化为所述返回值。本技术方案应用于研发管理的计算机开发领域,通过构建至少调用一个所述业务模块的接口,在软件项目中构建用于调用接口的启动器,在所述启动器中构建扫描进程,其中,所述扫描进程用于定义调用所述接口的方法,在所述扫描进程中构建管理规则,其中,所述管理规则用于定义所述扫描进程。因此本技术方案实现了对当前的研发框架的进一步快速开发的效果,使得开发人员仅需对基于研发框架所开发的软件项目进行配置化管理,即可对软件项目进行更新和配置。
[0202] 实施例四:
[0203] 为实现上述目的,本发明还提供一种计算机设备5,实施例三的调用模块的接口调用装置的组成部分可分散于不同的计算机设备中,计算机设备5可以是执行程序的智能手机、平板计算机、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个应用服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器51、处理器52,如图5所示。需要指出的是,图5仅示出了具有组件‑的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0204] 本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型内存(例如,SD或DX内存等)、随机访问内存(RAM)、静态随机访问内存(SRAM)、只读存储器(ROM)、电可擦除可程序设计只读存储器(EEPROM)、可程序设计只读存储器(PROM)、磁性内存、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例三的调用模块的接口调用装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0205] 处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行调用模块的接口调用装置,以实现实施例一和实施例二的调用模块的接口调用方法。
[0206] 实施例五:
[0207] 为实现上述目的,本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型内存(例如,SD或DX内存等)、随机访问内存(RAM)、静态随机访问内存(SRAM)、只读存储器(ROM)、电可擦除可程序设计只读存储器(EEPROM)、可程序设计只读存储器(PROM)、磁性内存、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储实现所述调用模块的接口调用方法的计算机程序,被处理器52执行时实现实施例一和实施例二的调用模块的接口调用方法。
[0208] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0209] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0210] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。