CN110825448B - 实现多业务模块相互调用的方法、装置、电子设备和存储介质 - Google Patents

实现多业务模块相互调用的方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN110825448B
CN110825448B CN201910882048.2A CN201910882048A CN110825448B CN 110825448 B CN110825448 B CN 110825448B CN 201910882048 A CN201910882048 A CN 201910882048A CN 110825448 B CN110825448 B CN 110825448B
Authority
CN
China
Prior art keywords
service
module
name
information
calling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910882048.2A
Other languages
English (en)
Other versions
CN110825448A (zh
Inventor
贺亚龙
吕庆春
彭飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuba Co Ltd
Original Assignee
Wuba Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN201910882048.2A priority Critical patent/CN110825448B/zh
Publication of CN110825448A publication Critical patent/CN110825448A/zh
Application granted granted Critical
Publication of CN110825448B publication Critical patent/CN110825448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Abstract

本申请公开了实现多业务模块相互调用的方法、装置、电子设备及存储介质,所述方法包括:应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息;建立每个所述服务的所述服务名称与所述调用信息的映射关系;当接收到第一业务模块传输的目标服务名称时,从映射关系中查找所述目标服务名称对应的调用信息,最后根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。本申请方法无需在第一业务模块中引入所调用服务的头文件等代码,进而有利于维护业务模块中的代码,降低代码耦合度。

Description

实现多业务模块相互调用的方法、装置、电子设备和存储介质
技术领域
本申请涉及应用程序开发技术领域,尤其涉及一种实现多业务模块相互调用的方法、装置、电子设备及存储介质。
背景技术
随着移动终端业务的拓展与丰富,面向终端的应用程序的功能也越来越丰富。应用程序的功能依赖于组成该应用程序的各业务模块,所述业务模块如“首页”、“发现”、“消息”和“个人中心”等等。如果一个应用程序中的业务模块较多,则多个业务模块之间必然存在错综复杂的交互,例如,某一业务模块调用其他业务模块中的方法或者跳转到其他业务模块的页面。
一种可实现多业务模块交互的方案中,为使某一业务模块能够调用另一业务模块内部的方法,或者实现从该业务模块页面跳转到另一业务模块的页面,需要在该业务模块代码中引入所要调用方法或所要跳转页面代码的头文件,才能够完成调用或跳转。图1为多业务模块间交互场景示意图,从图1可以看出,A、B、C、D四个模块间的调用及跳转逻辑错综复杂,涉及的业务场景众多,例如,可能涉及从页面A1跳转到页面B2后,由B模块调用D中的方法D3,还可能涉及由页面A2跳转到页面B3后,再从页面B3跳转到页面C1,再由C模块调用B中的方法B4,等等。
基于上述方案,由于对于每一模块而言,均可能涉及与其余各模块的交互,因此若在每个模块中都引入其余各模块中可调用方法或者可跳转页面的头文件,将导致模块中代码可维护性差、耦合度高等诸多问题。
发明内容
本申请提供一种实现多业务模块相互调用的方法、装置、电子设备及存储介质,以解决现有技术中,在每个模块中都引入其余各模块中可调用方法或者可跳转页面的头文件,所导致的模块中代码可维护性差、耦合度高等诸多问题。
第一方面,本申请提供一种实现多业务模块相互调用的方法,所述方法包括:
应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息;
建立每个所述服务的所述服务名称与所述调用信息的映射关系;
当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
进一步,所述预置配置信息中至少包括各业务模块预置中所述配置文件的文件标识,一个所述文件标识对应一个业务模块;
所述根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,包括:
遍历所述配置信息中的文件标识,根据所述文件标识在相应的业务模块中查找配置文件;
读取查找到的所述配置文件中包括的服务。
进一步,所述建立每个服务的服务名称与调用信息的映射关系,包括:
以所述服务名称为KEY值,以所述调用信息为VALUE值,建立所述服务名称与所述调用信息的映射关系,所述调用信息包括所述服务对应方法的类名和协议名。
进一步,所述方法还包括:
在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;
对所述目标服务名称和所述目标服务参数进行校验;
当对所述目标服务名称和所述目标服务参数校验成功时,执行查找调用信息及调用目标服务的步骤。
第二方面,本申请还提供一种实现应用程序业务模块热插拔的方法,所述方法包括:
对于每个业务模块,生成包括所述业务模块对外暴露的多个服务的配置文件,并保存在所述业务模块中,每个所述服务包括服务名称和调用信息;
配置独立于每个所述业务模块的服务模块,并在所述服务模块中预置用于读取各业务模块的配置文件的配置信息;
其中,所述服务模块被配置为执行以下步骤:
应用程序启动时,根据所述配置信息从各业务模块的配置文件中读取所述业务模块对外暴露的多个服务;
建立每个所述服务的服务名称与调用信息的映射关系;
当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
进一步,每个所述业务模块的所述配置文件具有一个文件标识;所述在服务模块中预置用于读取各业务模块的配置文件的配置信息,包括:
根据每个业务模块的配置文件所具有的文件标识,以及所述文件标识和所述业务模块的对应关系,生成所述配置信息并保存在所述服务模块中。
进一步,所述服务模块还被配置为执行以下步骤:
在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;
对所述目标服务名称和所述目标服务参数进行校验;
当对所述目标服务名称和所述目标服务参数校验成功时,执行查找调用信息及调用目标服务的步骤。
第三方面,本申请还提供一种实现多业务模块相互调用的装置,所述装置包括:
读取单元,用于在应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息;
建立单元,用于建立每个所述服务的所述服务名称与所述调用信息的映射关系;
查找单元,用于当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
调用单元,用于根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
进一步,所述预置配置信息中至少包括各业务模块预置中所述配置文件的文件标识,一个所述文件标识对应一个业务模块;所述读取单元包括:
遍历查找子单元,用于遍历所述文件标识,根据所述文件标识在相应的业务模块中查找配置文件;
读取子单元,用于读取所述配置文件中包括的服务。
进一步,所述建立单元,具体用于以所述服务名称为KEY值,以所述调用信息为VALUE值,建立所述服务名称与所述调用信息的映射关系,所述调用信息包括所述服务对应方法的类名和协议名。
进一步,所述装置还包括:
接收单元,用于在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;
校验单元,用于对所述目标服务名称和所述目标服务参数进行校验。
第四方面,本申请还提供一种实现应用程序业务模块热插拔的装置,其特征在于,所述装置包括:
生成模块,用于对于每个业务模块,生成包括所述业务模块对外暴露的多个服务的配置文件,并保存在所述业务模块中,每个所述服务包括服务名称和调用信息;
配置模块,用于配置独立于每个所述业务模块的服务模块,并在所述服务模块中预置用于读取各业务模块的配置文件的配置信息;其中,所述配置模块将所述服务模块被配置为执行以下步骤:
应用程序启动时,根据所述配置信息从各业务模块的配置文件中读取所述业务模块对外暴露的多个服务;
建立每个所述服务的服务名称与调用信息的映射关系;
当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
进一步,每个所述业务模块的所述配置文件具有一个文件标识;所述配置模块,具体用于根据每个业务模块的配置文件所具有的文件标识,以及所述文件标识和所述业务模块的对应关系,生成所述配置信息并保存在所述服务模块中。
进一步,所述配置模块,还用于将所述服务模块配置为执行以下步骤:
在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;
对所述目标服务名称和所述目标服务参数进行校验;
当对所述目标服务名称和所述目标服务参数校验成功时,执行查找调用信息及调用目标服务的步骤。
第五方面,本申请还提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面所述的实现多业务模块相互调用的方法。
第六方面,本申请还提供一种存储介质,其特征在于,所述存储介质中存储有计算机程序,当实现多业务模块相互调用的装置的至少一个处理器执行所述计算机程序时,实现多业务模块相互调用的装置执行第一方面所述的实现多业务模块相互调用的方法。
由以上技术方案可知,本申请提供一种实现多业务模块相互调用的方法、装置、电子设备及存储介质,所述方法包括:应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息;建立每个所述服务的所述服务名称与所述调用信息的映射关系;当接收到第一业务模块传输的目标服务名称时,从映射关系中查找所述目标服务名称对应的调用信息,最后根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
由于本申请方法可以通过一独立于各业务模块的服务模块执行。当第一业务模块需要调用第二业务模块中的服务时,只需要调用服务模块并将目标服务名称及服务参数发送给服务模块,即可通过服务模块完成目标服务的调用,因此无需在第一业务模块中引入所调用服务的头文件等代码,进而有利于维护业务模块中的代码,降低代码耦合度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为多业务模块间交互场景示意图;
图2为本申请根据一示例性实施例示出的一种实现多业务模块相互调用的方法流程图;
图3为本申请根据一示例性实施例示出的业务模块中配置文件示意图;
图4为本申请根据一示例性实施例示出的多业务模块相互调用过程示意图;
图5为基于本申请方法的多业务模块间交互场景示意图;
图6为本申请根据一示例性实施例示出的一种实现应用程序业务模块热插拔的方法流程图;
图7为本申请根据一示例性实施例示出的一种实现多业务模块相互调用的装置框图;
图8为本申请根据一示例性实施例示出的一种实现应用程序业务模块热插拔的装置框图;
图9为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
已有技术提供的一种可实现多业务模块交互的方案中,为使某一业务模块能够调用另一业务模块内部的方法,或者实现从该业务模块页面跳转到另一业务模块的页面,需要在该业务模块代码中引入所要调用方法或所要跳转页面代码的头文件,才能够完成调用或跳转。
然而,如图1所示,多业务模块涉及的业务场景众多,若在每个模块中都引入其余各模块中可调用方法或者可跳转页面的头文件,将导致模块中代码可维护性差、耦合度高等诸多问题。
另外,在上述实现方案中,由于各个业务模块必须要将其他所有业务模块的代码引入,因此会增加不必要的编译和资源消耗,同时,在将各业务模块拆分实现多APP发布的场景中,涉及的修改量太大,基本相当于重构且不可复用,增加成本。
为了解决上述问题,本申请实施例提供一种实现多业务模块相互调用的方法,以及一种实现应用程序业务模块热插拔的方法。
图2为本申请根据一示例性实施例示出的一种实现多业务模块相互调用的方法流程图,本申请方法可以通过一独立于各业务模块的服务模块执行,该服务模块对外提供公共接口以供各业务模块调用,因此可以代理调用者对目标服务进行调用,而无需在作为调用者的业务模块中引入所有可能目标服务的代码,进而有利于维护业务模块中的代码,降低代码耦合度。
如图2所示,该方法可以包括:
步骤201,应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息。
本实施例中,对于每个业务模块,预先生成包括该业务模块对外暴露的多个服务的配置文件,例如Plist文件,并保存在该业务模块中。其中,每个服务包括服务名称和调用信息。
服务名称可以是一个自定义名称,每个服务的服务名称属于该服务的标识属性,通过服务名称可以区别不同的服务以及快速查找到目标服务。
调用信息用于实现对相应服务的调用,调用信息具体可以包括服务的协议信息和类名,其中,协议信息如服务所遵守的协议名、协议类型等。
除此之外,每个服务还包括该服务的描述信息,用于添加相关参数。
示例性地,参阅图3,生成一个包含业务模块A对外暴露的服务SA1、SA2、SA3、SA4……SAn的Plist文件,保存在业务模块A中。该Plist文件中包含的内容如表1所示:
表1
需要说明的是,每个业务模块的所述配置文件都具有一个文件标识。该文件标识用于区分同一业务模块中的多个不同的文件,通过文件标识可以在业务模块中快速查找到目标文件。作为一种可能的实现方式,文件标识可以文件名,例如,如图3或表1所示,业务模块A中的配置文件的文件标识为其名称ASn.Plist。
本实施例中,在步骤201之前,需要预置用于查找各业务模块配置文件的配置信息。具体的,根据每个业务模块的配置文件所具有的文件标识,以及所述文件标识和所述业务模块的对应关系,生成所述配置信息。其中,配置信息可以为Plist文件类型的配置信息。
示例性的,生成的配置信息可如表2所示:
表2
其中,BSm.Plist、CSk.Plist、DSj.Plist分别为业务模块B、业务模块C、业务模块D中配置文件的文件标识。由表2可知,一个文件标识对应一个业务模块。
需要说明的是,一个业务模块往往可以对外暴露多个服务,并且,为了实现更多业务流程,该多个服务往往可被其余任意一个业务模块所调用。如果在每一个业务模块中都引入所要调用服务的代码的头文件,则会导致模块红代码可维护性差、耦合多高等诸多问题。
为了避免在每个业务模块中引入其他模块的代码,本申请将每个业务模块中对外暴露的每个服务预先保存在一个配置文件中,以供调用者代理(服务模块)可以在应用程序每次启动时读取到服务。
对于上述读取服务的过程,需要说明的是,由于一个业务模块中往往存在多个文件,因此为了快速、准确地在业务模块中查找到配置文件,以提高读取速度,节约设备资源,本实施例中,为各个业务模块中的配置文件定义一个具有唯一性的文件标识,并将文件标识保存在配置信息,从而可以根据配置信息中的文件标识,快速查找到配置文件,顺利读取出每个服务。
基于此,步骤201所述的根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,包括:遍历所述配置信息中的文件标识,根据所述文件标识在相应的业务模块中查找配置文件。读取查找到的配置文件中包括的服务,即读取配置文件中每个服务的服务名称和调用信息等信息。
步骤202,建立每个所述服务的所述服务名称与所述调用信息的映射关系。
通过步骤201,读取出每个服务的服务名称和调用信息后,建立每个所述服务的所述服务名称与所述调用信息的映射关系,以便在有调用需求时,可以根据目标服务名称,查找到目标服务的调用信息。
具体实现时,以所述服务名称为KEY值,以所述调用信息为VALUE值,建立所述服务名称与所述调用信息的映射关系,所述调用信息包括所述服务对应方法的类名和协议名。建立的映射关系可如表3所示:
表3
具体实现时,服务模块预先创建并维护一个字典,该字典用于存储读取的每个业务模块对外暴露的服务,以及每个所述服务的所述服务名称与所述调用信息的映射关系。
步骤203,当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息。
为了便于区分和说明,本实施例中,第一业务模块为调用者,第一调用模块可以为应用程序多个业务模块中的任意一个。具体实现时,第一业务模块中的组件可以发起调用。第二业务模块中的某个服务为被调用者,第二业务模块为除第一业务模块以外的其余业务模块中的任意一个。
例如,如果第一业务模块为业务模块A时,第二业务模块可以为业务模块B、C、D中的任意一个,被调用者为业务模块B、C、D对外暴露的服务中的任意一个。
当第一业务模块发起服务调用时,会发送目标服务名称,即其想要调用的服务的名称。当接收到第一业务模块传输的目标服务名称时,从上述映射关系中查找到目标服务名称对应的调用信息。
另外,在查找对应的调用信息之前,可以先行对接收到的目标服务名称进行校验,如果校验通过,说明该调用为有效调用,则可以执行查找调用信息的步骤。
步骤204,根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
需要说明的是,本实施例中,在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数。相应地,对所述目标服务名称和所述目标服务参数进行校验;当对所述目标服务名称和所述目标服务参数校验成功时,执行查找调用信息及调用目标服务的步骤。
结合步骤201至步骤204的记载,本申请多业务模块相互调用的方法的核心思路及调用过程还可以参见图4。由于图4所示实施例的具体实现基本等同于步骤201至步骤204的记载,因此不再赘述。
图5示出了基于本申请方法的多业务模块间交互场景示意图。将图5与图1对比可知,通过本申请方法,每个业务模块只需要依赖服务模块,即可完成对任意目标服务的调用。
由以上实施例可以看出,本申请提供一种实现多业务模块相互调用的方法,所述方法包括:应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息;建立每个所述服务的所述服务名称与所述调用信息的映射关系;当接收到第一业务模块传输的目标服务名称时,从映射关系中查找所述目标服务名称对应的调用信息,最后根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
由于本申请方法可以通过一独立于各业务模块的服务模块执行。当第一业务模块需要调用第二业务模块中的服务时,只需要调用服务模块并将目标服务名称及服务参数发送给服务模块,即可通过服务模块完成对目标服务的调用,因此无需在第一业务模块中引入所调用服务的头文件等代码,进而有利于维护业务模块中的代码,降低代码耦合度。
此外,由于不需要在每个业务模块中引入所调用服务的头文件等代码,因此可以减少不必要的编译和资源消耗,降低成本。
本申请实施例还提供一种实现应用程序业务模块热插拔的方法。图6为该方法的流程图,如图6所示,该方法可以包括:
步骤601,对于每个业务模块,生成包括所述业务模块对外暴露的多个服务的配置文件,并保存在所述业务模块中,每个所述服务包括服务名称和调用信息。
步骤602,配置独立于每个所述业务模块的服务模块,并在所述服务模块中预置用于读取各业务模块的配置文件的配置信息;
其中,所述服务模块被配置为执行以下步骤:
应用程序启动时,根据所述配置信息从各业务模块的配置文件中读取所述业务模块对外暴露的多个服务;
建立每个所述服务的服务名称与调用信息的映射关系;
当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
在上述实施例中,每个所述业务模块的所述配置文件具有一个文件标识;所述在服务模块中预置用于读取各业务模块的配置文件的配置信息,包括:根据每个业务模块的配置文件所具有的文件标识,以及所述文件标识和所述业务模块的对应关系,生成所述配置信息并保存在所述服务模块中。
由以上实施例可知,本申请提供的实现应用程序业务模块热插拔的方法,由于通过配置的服务模块即可实现应用程序中多个业务模块的相互调用,服务模块独立于所述多个业务模块,且量轻而易于维护,进而无需在业务模块中引入所要调用服务的代码,因此可以实现任意一个业务模块的热插拔,即,当需要移除或接入多个业务模块中的任意一个或多个时,都不会对其他业务模块的代码产生影响。
根据本申请实现多业务模块相互调用的方法,本申请实施例还提供一种实现多业务模块相互调用的装置,图7为该装置的框图,如图7所示,该装置可以包括:
读取单元701,用于在应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息;建立单元702,用于建立每个所述服务的所述服务名称与所述调用信息的映射关系;查找单元703,用于当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;调用单元704,用于根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
在一个实施例中,所述预置配置信息中至少包括各业务模块预置中所述配置文件的文件标识,一个所述文件标识对应一个业务模块;所述读取单元701包括:遍历查找子单元,用于遍历所述配置信息中的文件标识,根据所述文件标识在相应的业务模块中查找配置文件;读取子单元,用于读取所述配置文件中包括的服务。
在一个实施例中,所述建立单元702,具体用于以所述服务名称为KEY值,以所述调用信息为VALUE值,建立所述服务名称与所述调用信息的映射关系,所述调用信息包括所述服务对应方法的类名和协议名。
在一个实施例中,所述装置还包括:接收单元,用于在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;校验单元,用于对所述目标服务名称和所述目标服务参数进行校验。
根据本申请实现应用程序业务模块热插拔的方法,本申请实施例还提供一种实现应用程序业务模块热插拔的装置,如图8所示,该装置包括:
生成模块801,用于对于每个业务模块,生成包括所述业务模块对外暴露的多个服务的配置文件,并保存在所述业务模块中,每个所述服务包括服务名称和调用信息;
配置模块802,用于配置独立于每个所述业务模块的服务模块,并在所述服务模块中预置用于读取各业务模块的配置文件的配置信息;其中,所述配置模块将所述服务模块被配置为执行以下步骤:
应用程序启动时,根据所述配置信息从各业务模块的配置文件中读取所述业务模块对外暴露的多个服务;建立每个所述服务的服务名称与调用信息的映射关系;当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务。
在一个实施例中,每个所述业务模块的所述配置文件具有一个文件标识;所述配置模块,具体用于根据每个业务模块的配置文件所具有的文件标识,以及所述文件标识和所述业务模块的对应关系,生成所述配置信息并保存在所述服务模块中。
在一个实施例中,所述配置模块,还用于将所述服务模块配置为执行以下步骤:在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;对所述目标服务名称和所述目标服务参数进行校验;当对所述目标服务名称和所述目标服务参数校验成功时,执行查找调用信息及调用目标服务的步骤。
图9为本申请实施例提供的电子设备的硬件结构示意图。如图9所示,该电子设备,可以包括:存储器901,用于存储程序指令;处理器902,用于调用并执行所述存储器中的程序指令,以实现上述实现多业务模块相互调用的方法。
本实施例中,处理器和存储器可通过总线或其他方式连接。处理器可以是通用处理器,例如中央处理器、数字信号处理器、专用集成电路,或者被配置成实施本发明实施例的一个或多个集成电路。存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有计算程序,当实现多业务模块相互调用的装置的至少一个处理器执行所述计算机程序时,实现多业务模块相互调用的装置执行本申请实现多业务模块相互调用的方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。

Claims (15)

1.一种实现多业务模块相互调用的方法,其特征在于,所述方法包括:
应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息,所述预置配置信息中至少包括各业务模块预置的所述配置文件的文件标识,一个所述文件标识对应一个业务模块;
建立每个所述服务的所述服务名称与所述调用信息的映射关系;
当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务;
其中,在接收所述第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数,并对所述目标服务名称和所述目标服务参数进行校验,当校验成功时,执行查找调用信息及调用目标服务的步骤。
2.根据权利要求1所述的方法,其特征在于,
所述根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,包括:
遍历所述配置信息中的文件标识,根据所述文件标识在相应的业务模块中查找配置文件;
读取查找到的所述配置文件中包括的服务。
3.根据权利要求2所述的方法,其特征在于,所述建立每个服务的服务名称与调用信息的映射关系,包括:
以所述服务名称为KEY值,以所述调用信息为VALUE值,建立所述服务名称与所述调用信息的映射关系,所述调用信息包括所述服务对应方法的类名和协议名。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;
对所述目标服务名称和所述目标服务参数进行校验;
当对所述目标服务名称和所述目标服务参数校验成功时,执行查找调用信息及调用目标服务的步骤。
5.一种实现应用程序业务模块热插拔的方法,其特征在于,所述方法包括:
对于每个业务模块,生成包括所述业务模块对外暴露的多个服务的配置文件,并保存在所述业务模块中,每个所述服务包括服务名称和调用信息;
配置独立于每个所述业务模块的服务模块,并在所述服务模块中预置用于读取各业务模块的配置文件的配置信息;
其中,所述服务模块被配置为执行以下步骤:
应用程序启动时,根据所述配置信息从各业务模块的配置文件中读取所述业务模块对外暴露的多个服务,所述配置信息中至少包括各业务模块预置的所述配置文件的文件标识,一个所述文件标识对应一个业务模块;
建立每个所述服务的服务名称与调用信息的映射关系;
当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务;
其中,在接收所述第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数,并对所述目标服务名称和所述目标服务参数进行校验,当校验成功时,执行查找调用信息及调用目标服务的步骤。
6.根据权利要求5所述的方法,其特征在于,
在服务模块中预置用于读取各业务模块的配置文件的配置信息,包括:
根据每个业务模块的配置文件所具有的文件标识,以及所述文件标识和所述业务模块的对应关系,生成所述配置信息并保存在所述服务模块中。
7.根据权利要求5所述的方法,其特征在于,所述服务模块还被配置为执行以下步骤:
在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;
对所述目标服务名称和所述目标服务参数进行校验;
当对所述目标服务名称和所述目标服务参数校验成功时,执行查找调用信息及调用目标服务的步骤。
8.一种实现多业务模块相互调用的装置,其特征在于,所述装置包括:
读取单元,用于在应用程序启动时,根据预置配置信息从各业务模块预置的配置文件中读取所述业务模块对外暴露的多个服务,每个所述服务包括服务名称和调用信息,所述预置配置信息中至少包括各业务模块预置的所述配置文件的文件标识,一个所述文件标识对应一个业务模块;
建立单元,用于建立每个所述服务的所述服务名称与所述调用信息的映射关系;
查找单元,用于当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
调用单元,用于根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务;
其中,所述查找单元还用于在接收所述第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数,并对所述目标服务名称和所述目标服务参数进行校验,当校验成功时,查找调用信息。
9.根据权利要求8所述的装置,其特征在于,所述读取单元包括:
遍历查找子单元,用于遍历所述文件标识,根据所述文件标识在相应的业务模块中查找配置文件;
读取子单元,用于读取所述配置文件中包括的服务。
10.根据权利要求9所述的装置,其特征在于,所述建立单元,具体用于以所述服务名称为KEY值,以所述调用信息为VALUE值,建立所述服务名称与所述调用信息的映射关系,所述调用信息包括所述服务对应方法的类名和协议名。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收单元,用于在接收第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数;
校验单元,用于对所述目标服务名称和所述目标服务参数进行校验。
12.一种实现应用程序业务模块热插拔的装置,其特征在于,所述装置包括:
生成模块,用于对于每个业务模块,生成包括所述业务模块对外暴露的多个服务的配置文件,并保存在所述业务模块中,每个所述服务包括服务名称和调用信息;
配置模块,用于配置独立于每个所述业务模块的服务模块,并在所述服务模块中预置用于读取各业务模块的配置文件的配置信息,所述配置信息中至少包括各业务模块预置的所述配置文件的文件标识,一个所述文件标识对应一个业务模块;
其中,所述配置模块将所述服务模块被配置为执行以下步骤:
应用程序启动时,根据所述配置信息从各业务模块的配置文件中读取所述业务模块对外暴露的多个服务;
建立每个所述服务的服务名称与调用信息的映射关系;
当接收到第一业务模块传输的目标服务名称时,从所述映射关系中查找所述目标服务名称对应的调用信息;
根据查找到的调用信息调用目标服务,所述目标服务属于第二业务模块对外暴露的服务;
其中,在接收所述第一业务模块传输的目标服务名称的同时,接收所述第一业务模块传输的目标服务参数,并对所述目标服务名称和所述目标服务参数进行校验,当校验成功时,执行查找调用信息及调用目标服务的步骤。
13.根据权利要求12所述的装置,其特征在于,所述配置模块,具体用于根据每个业务模块的配置文件所具有的文件标识,以及所述文件标识和所述业务模块的对应关系,生成所述配置信息并保存在所述服务模块中。
14.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现权利要求1-4或5-7任一项所述的实现多业务模块相互调用的方法。
15.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,当实现多业务模块相互调用的装置的至少一个处理器执行所述计算机程序时,实现多业务模块相互调用的装置执行权利要求1-4或5-7任一项所述的实现多业务模块相互调用的方法。
CN201910882048.2A 2019-09-18 2019-09-18 实现多业务模块相互调用的方法、装置、电子设备和存储介质 Active CN110825448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910882048.2A CN110825448B (zh) 2019-09-18 2019-09-18 实现多业务模块相互调用的方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910882048.2A CN110825448B (zh) 2019-09-18 2019-09-18 实现多业务模块相互调用的方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN110825448A CN110825448A (zh) 2020-02-21
CN110825448B true CN110825448B (zh) 2023-10-27

Family

ID=69548002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910882048.2A Active CN110825448B (zh) 2019-09-18 2019-09-18 实现多业务模块相互调用的方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110825448B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339529B (zh) * 2020-03-13 2022-09-30 杭州指令集智能科技有限公司 低代码的业务编排构件运行的管理系统、方法及计算设备
CN111488286B (zh) * 2020-04-15 2024-02-09 腾讯音乐娱乐科技(深圳)有限公司 一种Android模块独立开发的方法及装置
CN111984531B (zh) * 2020-07-31 2022-01-28 五八有限公司 一种代码耦合检测的方法及装置
CN112468580A (zh) * 2020-11-25 2021-03-09 政采云有限公司 一种业务服务的调用方法、装置、设备及存储介质
CN113448698B (zh) * 2020-12-24 2024-04-02 北京新氧科技有限公司 业务模块相互调用的实现方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500102A (zh) * 2013-10-16 2014-01-08 迈普通信技术股份有限公司 一种服务调用方法和提供服务调用的装置
CN108304219A (zh) * 2016-09-18 2018-07-20 广东电网有限责任公司佛山供电局 二次开发平台及方法
CN108363614A (zh) * 2018-03-07 2018-08-03 北京恒华伟业科技股份有限公司 一种应用的业务模块管理方法、装置及服务器
CN109359147A (zh) * 2018-09-27 2019-02-19 北京京东尚科信息技术有限公司 业务组件处理方法、组件服务器和系统
CN109922158A (zh) * 2019-03-22 2019-06-21 泰康保险集团股份有限公司 基于微服务的数据处理方法、装置、介质及电子设备
CN110244990A (zh) * 2019-04-29 2019-09-17 五八有限公司 应用组件调用方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500102A (zh) * 2013-10-16 2014-01-08 迈普通信技术股份有限公司 一种服务调用方法和提供服务调用的装置
CN108304219A (zh) * 2016-09-18 2018-07-20 广东电网有限责任公司佛山供电局 二次开发平台及方法
CN108363614A (zh) * 2018-03-07 2018-08-03 北京恒华伟业科技股份有限公司 一种应用的业务模块管理方法、装置及服务器
CN109359147A (zh) * 2018-09-27 2019-02-19 北京京东尚科信息技术有限公司 业务组件处理方法、组件服务器和系统
CN109922158A (zh) * 2019-03-22 2019-06-21 泰康保险集团股份有限公司 基于微服务的数据处理方法、装置、介质及电子设备
CN110244990A (zh) * 2019-04-29 2019-09-17 五八有限公司 应用组件调用方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110825448A (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
CN110825448B (zh) 实现多业务模块相互调用的方法、装置、电子设备和存储介质
CN103036597B (zh) 近距离设备间的资源分享方法和设备
CN109462601B (zh) 基于eSIM的多平台访问方法及装置
CN110795174B (zh) 一种应用程序接口调用方法、装置、设备及可读存储介质
CN105389160A (zh) 一种信息发布方法及装置
CN113806037A (zh) 服务的调用方法、装置、存储介质及电子设备
CN108449801A (zh) 网络连接方法、装置、计算机装置及计算机可读存储介质
CN111225018A (zh) 一种请求报文处理方法、装置和电子设备
WO2017181465A1 (zh) 一种接入点名称apn的配置方法及装置
CN116028331A (zh) 用于中间件测试的配置文件生成方法以及框架构建方法
CN104092720A (zh) 播放列表的分享方法及装置
CN114640657A (zh) 多注册中心的融合方法、装置
WO2018058895A1 (zh) 一种基于rcs消息的终端控制方法及装置
CN109815202B (zh) 日志编辑方法及相关装置
CN111695098A (zh) 多分布式集群访问方法及装置
CN110619204A (zh) 一种邀请码生成方法、装置、终端设备及存储介质
CN111488286B (zh) 一种Android模块独立开发的方法及装置
CN110580212B (zh) 应用程序的数据导出方法、装置、电子设备及存储介质
CN112769863B (zh) 一种业务请求报文数据的处理方法、装置、电子设备及可读存储介质
CN110875895A (zh) 实现智能终端软件登录的方法、系统、设备、及车辆
CN112579472B (zh) 测试用例的自动生成方法及装置
CN116795673A (zh) 一种系统测试方法、装置、电子设备及存储介质
CN114697888A (zh) 5g消息处理方法、装置及存储介质
CN114071455A (zh) 免密认证方法、服务器和系统、网关设备
US20190342448A1 (en) Methods and devices for verifying a communication number

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant