CN112068899A - 插件加载方法、装置、电子设备及存储介质 - Google Patents

插件加载方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112068899A
CN112068899A CN202010905811.1A CN202010905811A CN112068899A CN 112068899 A CN112068899 A CN 112068899A CN 202010905811 A CN202010905811 A CN 202010905811A CN 112068899 A CN112068899 A CN 112068899A
Authority
CN
China
Prior art keywords
configuration
loading
middleware
plug
target plug
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.)
Pending
Application number
CN202010905811.1A
Other languages
English (en)
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.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology 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 Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN202010905811.1A priority Critical patent/CN112068899A/zh
Publication of CN112068899A publication Critical patent/CN112068899A/zh
Pending legal-status Critical Current

Links

Images

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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供的一种插件加载方法、装置、电子设备及存储介质,应用于计算机网络技术领域,所述方法包括:获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置;根据所述插件标识获取目标插件;根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置;根据所述扩展后的中间件配置加载所述目标插件。本方案通过在通过中间件加载插件时,可以根据扩展配置对中间件配置进行扩展后再对插件进行加载,丰富了中间件加载插件的多样性。

Description

插件加载方法、装置、电子设备及存储介质
技术领域
本申请属于计算机网络技术领域,特别是涉及一种插件加载方法、装置、电子设备及存储介质。
背景技术
在众多JavaScript web framework(JS页面框架)中,为了保证框架核心的精简、高效,大多都接种中间件来开发插件。而中间件是一种连接操作***、数据库等***软件和应用软件之间的分布式软件,例如KOA中文中间件等第三方提供的中间件函数能够提供对于插件的一些扩展逻辑。
但是由于第三方的所提供的中间件所提供的扩展逻辑较为单一,无法满足开发人员在适用于不同业务场景的插件加载需求。
发明内容
本申请实施例提供一种事件监控方法、***、装置、电子设备及存储介质,能够解决现有技术中用于加载插件的中间件所提供的扩展逻辑较为单一,无法满足开发人员在适用于不同业务场景的插件加载需求的问题。
有鉴于此,本申请实施例提供一种插件加载方法,所述方法包括:
获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置;
根据所述插件标识获取目标插件;
根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置;
根据所述扩展后的中间件配置加载所述目标插件。
可选的,所述根据所述扩展后的中间件配置加载所述目标插件,包括:
在所述目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述目标插件;
在所述目标插件为功能函数形式的情况下,执行所述目标插件;
在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件。
可选的,所述在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件之后,还包括:
在执行后的目标插件为功能函数形式的情况下,接收对于所述目标插件的执行请求;
响应于所述执行请求,根据所述扩展后的中间件配置加载所述执行后的目标插件。
可选的,所述在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件之后,还包括:
在所述目标插件为中间件形式的情况下,根据中间件配置加载所述目标插件。
可选的,所述根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置,包括:
在所述扩展配置为全局类型的情况下,将所述中间件配置作为扩展后的中间件配置;
在所述扩展配置为第一局部类型的情况下,将所述中间件配置中与所述扩展配置相匹配的配置,作为扩展后的中间件配置;
在所述扩展配置为第二局部类型的情况下,将所述中间件配置中除与扩展配置相匹配的配置以外的配置,作为扩展后的中间件配置;
在所述扩展配置为方法类型的情况下,根据所述配置文件添加到所述中间件配置中,得到扩展后的中间件配置。
可选的,所述根据扩展后的中间件配置加载所述目标插件,包括:
调用所述目标插件的get命令,以查询符合所述扩展后的中间件配置的加载结果;
在所述加载结果存在的情况下,将所述加载结果作为目标插件本次加载的加载结果;
在所述加载结果不存在的情况下,根据所述扩展后的中间件配置加载所述目标插件,加载结果,并存储所述加载结果。
本申请实施例提供一种插件加载装置,所述装置包括:
第一获取模块,用于获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置;
第二获取模块,用于根据所述插件标识获取目标插件;
扩展模块,用于根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置;
加载模块,用于根据所述扩展后的中间件配置加载所述目标插件。
可选的,所述加载模块,还用于:
在所述目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述目标插件;
在所述目标插件为功能函数形式的情况下,执行所述目标插件;
在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件。
可选的,所述加载模块,还用于:
在执行后的目标插件为功能函数形式的情况下,接收对于所述目标插件的执行请求;
响应于所述执行请求,根据所述扩展后的中间件配置加载所述执行后的目标插件。
可选的,所述加载模块,还用于:
在所述目标插件为中间件形式的情况下,根据中间件配置加载所述目标插件。
可选的,所述扩展模块,还用于:
在所述扩展配置为全局类型的情况下,将所述中间件配置作为扩展后的中间件配置;
在所述扩展配置为第一局部类型的情况下,将所述中间件配置中与所述扩展配置相匹配的配置,作为扩展后的中间件配置;
在所述扩展配置为第二局部类型的情况下,将所述中间件配置中除与扩展配置相匹配的配置以外的配置,作为扩展后的中间件配置;
在所述扩展配置为方法类型的情况下,根据所述配置文件添加到所述中间件配置中,得到扩展后的中间件配置。
可选的,所述加载模块,还用于:
调用所述目标插件的get命令,以查询符合所述扩展后的中间件配置的加载结果;
在所述加载结果存在的情况下,将所述加载结果作为目标插件本次加载的加载结果;
在所述加载结果不存在的情况下,根据所述扩展后的中间件配置加载所述目标插件,加载结果,并存储所述加载结果。
本申请实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的插件加载方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述所述的插件加载方法。
针对现有技术,本申请具备如下优点:
本申请提供的一种插件加载方法、装置、电子设备及存储介质,本方案通过在通过中间件加载插件时,可以根据扩展配置对中间件配置进行扩展后再对插件进行加载,丰富了中间件加载插件的多样性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本申请实施例提供的一种插件加载方法的步骤流程图;
图2是本申请实施例提供的另一种插件加载方法的步骤流程图;
图3是本申请实施例提供的一种中间件配置的扩展方法的步骤流程图;
图4是本申请实施例提供的又一种插件加载方法的步骤流程图;
图5是本申请实施例提供的一种插件加载装置的结构框图;
图6是本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
图1是本申请实施例提供的一种插件加载方法的步骤流程图,所述方法包括:
步骤101,获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置。
在本申请实施例中,插件加载配置可以是应用程序需要加载插件时通过发送的请求。插件标识是指插件的唯一识别标识。中间件配置是指中间件的原始加载规则,由于中间件是已经开发完成的加载工具,因此自带有原始加载规则。扩展配置是指用户需要对中间件配置进行扩展的参数配置。
在先技术中用户可以通过中间件对所需的插件进行加载,但是局限于已有中间件所提供的功能的局限性,用户只能根据中间件的原始加载规则来通过中间件加载插件,无法满足日益丰富的开发场景的需求。
插件配置文件可以存储在该应用配置文件中,这样的话,***在启动应用程序并读取应用程序配置文件时,将自动读取该插件配置文件。
步骤102,根据所述插件标识获取目标插件。
在本申请实施例中,***根据插件标识从所存储的插件目录中查询并获取该插件标识所指示的目标插件。
步骤103,根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置。
***可以根据加载配置对目标插件进行加载,因此此时需要获取加载该目标插件的加载配置。在先技术中的中间件可以根据中间件配置直接对目标插件的进行加载,但是为了适应更多的长发场景,本申请实施例还提供有扩展配置,用户可通过对在插件加载配置中加入扩展配置,从而对中间件自带的中间件配置进行调整,例如:添加新的加载逻辑、删除已有的加载逻辑、仅执行部分加载逻辑等等调整操作,从而对中间件配置进行扩展。
步骤104,根据所述扩展后的中间件配置加载所述目标插件。
在本申请实施例中,根据扩展后的中间件配置使得目标插件可以根据用户所需的加载逻辑进行加载,可以满足更多的开发场景。
本申请提供的一种插件加载方法,通过在通过中间件加载插件时,可以根据扩展配置对中间件配置进行扩展后再对插件进行加载,丰富了中间件加载插件的多样性。
图2是本申请实施例提供的另一种插件加载方法的步骤流程图,所述方法包括:
步骤201,获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置。
该步骤可参照步骤101的详细描述,此处不再赘述。
步骤202,根据所述插件标识获取目标插件。
该步骤可参照步骤102的详细描述,此处不再赘述。
步骤203,根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置。
该步骤可参照步骤103的详细描述,此处不再赘述。
步骤204,在所述目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述目标插件。
在本申请实施例,对象形式是指目标插件是对象形式(Object)的代码,对象是实例化的类。由于插件加载需要插件为对象形式,因此若目标插件为对象形式,可以直接根据扩展后的配置对该目标插件进行加载。
步骤205,在所述目标插件为功能函数形式的情况下,执行所述目标插件。
在本申请实施例中,功能函数形式是指目标插件是功能函数形式(Function)的代码,功能函数是一种可以完成相关功能的执行代码段。
由于功能数据无法直接用户加载,因此在目标函数为功能函数形式的情况下,需要对该目标插件先执行该功能函数,以对所述功能函数进行实例化。
步骤206,在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件。
本申请实施例中对执行后的目标插件和步骤103中的目标插件均为对象形式,因此加载方案类似,为避免重复,此处不再赘述。
本申请实施例在所需加载的插件为功能函数形式的情况下,通过实例化目标插件为对象形式后在对目标插件进行加载,提高了本方案的的可适用范围。
步骤207,在执行后的目标插件为功能函数形式的情况下,接收对于所述目标插件的执行请求。
在本申请实施例中,执行请求是对于目标插件提供执行结果的请求,可以是用户发送的,也可以是***自动生成的。若功能函数在执行后仍是功能函数,则可以通过中间件对该功能函数形式的目标插件进行包装,等待对于该目标插件的执行请求。
步骤208,响应于所述执行请求,根据所述扩展后的中间件配置加载所述执行后的目标插件。
在本申请实施例中,在接收到对于功能函数形式的目标插件的执行请求时,即可通过中间件配置对中间件包装后的目标插件进行加载。
本方案在执行后的目标插件仍为功能函数形式的情况下,直接通过中间件配置来加载目标插件,提高了本方案的可适用范围。
步骤209,在所述目标插件为中间件形式的情况下,根据中间件配置加载所述目标插件。
在本申请实施例中,中间件形式是指目标插件所包含的只有已有的中间件(Middleware),此时直接根据中间件配置进行加载即可,无需调整中间件配置。
本方案在目标插件为中间件形式时,直接通过中间件配置来加载插件,使得用户可以本方案也可以兼容通过中间件配置加载插件的方式,提高了本方案的可适用性。
可选的,参照图3,所述步骤202,包括:
子步骤2021,在所述扩展配置为全局类型的情况下,将所述中间件配置作为扩展后的中间件配置。
在本申请实施例中,全局类型是指扩展配置的内容是直接使用已有中间件。具体的,用户可通过use(使用)的执行代码来对扩展配置进行设置,设置需要使用的已有中间件,从而后续根据该已有中间件的加载配置作为扩展后的中间件配置对目标插件进行加载。可以理解,如果已有中间件已经可以满足用户的实际需求,用户可通过设置该全局类型的扩展配置使用已有的中间件加载目标插件。
子步骤2022,在所述扩展配置为第一局部类型的情况下,将所述中间件配置中与所述扩展配置相匹配的配置,作为扩展后的中间件配置。
在本申请实施例中,第一局部类型是指扩展配置的内容是仅执行中间件配置中相匹配加载规则的类型。具体的,用户可通过filter函数来对所需的已有中间件配置进行设置,从而在根据该扩展配置调整中间件配置后,仅会将其中用户选中的加载规则设置为有效,其他剩余配置设置为无效,从而使得用户可以局部使用已有中间件的中间件配置对插件进行加载。
子步骤2023,在所述扩展配置为第二局部类型的情况下,将所述中间件配置中除与扩展配置相匹配的配置以外的配置,作为扩展后的中间件配置。
在本申请实施例中,第二局部类型是指扩展配置的内容是仅执行中间件配置中相匹配加载规则外的加载规则的类型。具体的,用户可通过ignore函数来对不需要的已有中间件配置进行设置,从而在根据该扩展配置调整中间件配置后,仅会将其中用户未选的加载配置设置为有效,其他剩余设置为无效,从而使得用户可以局部使用已有中间件的中间件配置对插件进行加载。
子步骤2024,在所述扩展配置为方法类型的情况下,根据所述配置文件添加到所述中间件配置中,得到扩展后的中间件配置。
在本申请实施例中,方法类型是指扩展配置的内容是方法执行代码。具体的,用户可通过Request Method(请求方法)的编码方式来对所需添加的加载逻辑进行设置,从而使得已有中间件配置中还包含有用户自主添加的配置。
可选的,参照图4,所述步骤104,包括:
子步骤1041,调用所述目标插件的get命令,以查询符合所述扩展后的中间件配置的加载结果。
在本申请实施例中,需要进行说明是的,get语法将对象属性绑定到查询该属性时将被调用的函数。在访问他们之前不会计算属性的值,是一种优化技术,通过记忆化getter延迟属性值的计算并将其缓存以备以后访问,该值在第一次调用时计算,然后被缓存,后续访问缓存值而不重新计算。
本申请实施例通过get语法来编写插件加载代码,从而在应用程序加载应用配置时,先不加载所包含目标插件,而是在目标插件需要被调用时,通过调用get命令才对目标插件进行加载。在加载时,首先需要查询该目标插件是否存在加载结果,也就是说该目标插件之前是否已被加载过,并存储有加载结果。
子步骤1042,在所述加载结果存在的情况下,将所述加载结果作为目标插件本次加载的加载结果。
在本申请实施例中,如果存在加载结果,表明该目标插件按照扩展后的中间件配置已经加载过,则无需对该目标插件进行重复进行加载过程,直接根据已有的加载结果加载目标插件即可。
子步骤1043,在所述加载结果不存在的情况下,根据所述扩展后的中间件配置加载所述目标插件,加载结果,并存储所述加载结果。
在本申请实施例中,如果加载结果不存在,则需要根据扩展后的中间件配置加载该目标插件,但需要存储加载得到的加载结果,以供后续加载目标插件使用。
本申请实施例通过get语法来编写插件加载代码,避免了每次加载目标插件需要重复加载所需的数据处理量,提高了插件加载的效率。
本申请提供的另一种插件加载方法,通过在通过中间件加载插件时,可以根据扩展配置对中间件配置进行扩展后再对插件进行加载,丰富了中间件加载插件的多样性。并且还通过提供多种扩展配置的设置方式,使得用户可以根据自身需求局部采用中间件配置来加载插件,提高了插件扩展的灵活性。并且本申请实施例通过get语法来编写插件加载代码,避免了每次加载目标插件需要重复加载所需的数据处理量,提高了插件加载的效率。
图5是本申请实施例提供的一种插件加载装置30,所述装置包括:
第一获取模块301,用于获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置;
第二获取模块302,用于根据所述插件标识获取目标插件;
扩展模块303,用于根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置;
加载模块304,用于根据所述扩展后的中间件配置加载所述目标插件。
可选的,所述加载模块304,还用于:
在所述目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述目标插件;
在所述目标插件为功能函数形式的情况下,执行所述目标插件;
在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件。
可选的,所述加载模块304,还用于:
在执行后的目标插件为功能函数形式的情况下,接收对于所述目标插件的执行请求;
响应于所述执行请求,根据所述扩展后的中间件配置加载所述执行后的目标插件。
可选的,所述加载模块304,还用于:
在所述目标插件为中间件形式的情况下,根据中间件配置加载所述目标插件。
可选的,所述扩展模块303,还用于:
在所述扩展配置为全局类型的情况下,将所述中间件配置作为扩展后的中间件配置;
在所述扩展配置为第一局部类型的情况下,将所述中间件配置中与所述扩展配置相匹配的配置,作为扩展后的中间件配置;
在所述扩展配置为第二局部类型的情况下,将所述中间件配置中除与扩展配置相匹配的配置以外的配置,作为扩展后的中间件配置;
在所述扩展配置为方法类型的情况下,根据所述配置文件添加到所述中间件配置中,得到扩展后的中间件配置。
可选的,所述加载模块304,还用于:
调用所述目标插件的get命令,以查询符合所述扩展后的中间件配置的加载结果;
在所述加载结果存在的情况下,将所述加载结果作为目标插件本次加载的加载结果;
在所述加载结果不存在的情况下,根据所述扩展后的中间件配置加载所述目标插件,加载结果,并存储所述加载结果。
本申请提供的一种插件加载装置,通过在通过中间件加载插件时,可以根据扩展配置对中间件配置进行扩展后再对插件进行加载,丰富了中间件加载插件的多样性。
对于上述服务器的实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种电子设备,如图6所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:
获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置;根据所述插件标识获取目标插件;根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置;根据所述扩展后的中间件配置加载所述目标插件。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种形式的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的插件加载方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的插件加载方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (14)

1.一种插件加载方法,其特征在于,所述方法包括:
获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置;
根据所述插件标识获取目标插件;
根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置;
根据所述扩展后的中间件配置加载所述目标插件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述扩展后的中间件配置加载所述目标插件,包括:
在所述目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述目标插件;
在所述目标插件为功能函数形式的情况下,执行所述目标插件;
在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件。
3.根据权利要求2所述的方法,其特征在于,所述在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件之后,还包括:
在执行后的目标插件为功能函数形式的情况下,接收对于所述目标插件的执行请求;
响应于所述执行请求,根据所述扩展后的中间件配置加载所述执行后的目标插件。
4.根据权利要求2所述的方法,其特征在于,所述在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件之后,还包括:
在所述目标插件为中间件形式的情况下,根据中间件配置加载所述目标插件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置,包括:
在所述扩展配置为全局类型的情况下,将所述中间件配置作为扩展后的中间件配置;
在所述扩展配置为第一局部类型的情况下,将所述中间件配置中与所述扩展配置相匹配的配置,作为扩展后的中间件配置;
在所述扩展配置为第二局部类型的情况下,将所述中间件配置中除与扩展配置相匹配的配置以外的配置,作为扩展后的中间件配置;
在所述扩展配置为方法类型的情况下,根据所述配置文件添加到所述中间件配置中,得到扩展后的中间件配置。
6.根据权利要求1所述的方法,其特征在于,所述根据扩展后的中间件配置加载所述目标插件,包括:
调用所述目标插件的get命令,以查询符合所述扩展后的中间件配置的加载结果;
在所述加载结果存在的情况下,将所述加载结果作为目标插件本次加载的加载结果;
在所述加载结果不存在的情况下,根据所述扩展后的中间件配置加载所述目标插件,加载结果,并存储所述加载结果。
7.一种插件加载装置,其特征在于,所述装置包括:
第一获取模块,用于获取插件加载配置,所述插件加载配置至少包括:插件标识、扩展配置、中间件配置;
第二获取模块,用于根据所述插件标识获取目标插件;
扩展模块,用于根据所述扩展配置对所述中间件配置进行调整,得到扩展后的中间件配置;
加载模块,用于根据所述扩展后的中间件配置加载所述目标插件。
8.根据权利要求7所述的装置,其特征在于,所述加载模块,还用于:
在所述目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述目标插件;
在所述目标插件为功能函数形式的情况下,执行所述目标插件;
在所述执行后的目标插件为对象形式的情况下,根据所述扩展后的中间件配置加载所述执行后的目标插件。
9.根据权利要求8所述的装置,其特征在于,所述加载模块,还用于:
在执行后的目标插件为功能函数形式的情况下,接收对于所述目标插件的执行请求;
响应于所述执行请求,根据所述扩展后的中间件配置加载所述执行后的目标插件。
10.根据权利要求8所述的装置,其特征在于,所述加载模块,还用于:
在所述目标插件为中间件形式的情况下,根据中间件配置加载所述目标插件。
11.根据权利要求7所述的装置,其特征在于,所述扩展模块,还用于:
在所述扩展配置为全局类型的情况下,将所述中间件配置作为扩展后的中间件配置;
在所述扩展配置为第一局部类型的情况下,将所述中间件配置中与所述扩展配置相匹配的配置,作为扩展后的中间件配置;
在所述扩展配置为第二局部类型的情况下,将所述中间件配置中除与扩展配置相匹配的配置以外的配置,作为扩展后的中间件配置;
在所述扩展配置为方法类型的情况下,根据所述配置文件添加到所述中间件配置中,得到扩展后的中间件配置。
12.根据权利要求7所述的装置,其特征在于,所述加载模块,还用于:
调用所述目标插件的get命令,以查询符合所述扩展后的中间件配置的加载结果;
在所述加载结果存在的情况下,将所述加载结果作为目标插件本次加载的加载结果;
在所述加载结果不存在的情况下,根据所述扩展后的中间件配置加载所述目标插件,加载结果,并存储所述加载结果。
13.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7中任一所述的插件加载方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一所述的插件加载方法。
CN202010905811.1A 2020-09-01 2020-09-01 插件加载方法、装置、电子设备及存储介质 Pending CN112068899A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010905811.1A CN112068899A (zh) 2020-09-01 2020-09-01 插件加载方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010905811.1A CN112068899A (zh) 2020-09-01 2020-09-01 插件加载方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112068899A true CN112068899A (zh) 2020-12-11

Family

ID=73664854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010905811.1A Pending CN112068899A (zh) 2020-09-01 2020-09-01 插件加载方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112068899A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138479A1 (zh) * 2022-01-21 2023-07-27 北京字跳网络技术有限公司 一种插件的加载方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968154A (zh) * 2006-09-15 2007-05-23 华为技术有限公司 使用插件进行业务扩展的***及其方法
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
CN103761114A (zh) * 2013-10-18 2014-04-30 北京奇虎科技有限公司 一种浏览器侧加载扩展和/或插件的方法及装置
CN105373396A (zh) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 插件平台中的插件更新方法和装置
CN111124526A (zh) * 2018-11-01 2020-05-08 北京奇虎科技有限公司 依赖库管理方法、装置、存储介质和计算机设备
CN111367577A (zh) * 2018-12-25 2020-07-03 中兴通讯股份有限公司 加载应用的插件的方法、装置和终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968154A (zh) * 2006-09-15 2007-05-23 华为技术有限公司 使用插件进行业务扩展的***及其方法
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
CN103761114A (zh) * 2013-10-18 2014-04-30 北京奇虎科技有限公司 一种浏览器侧加载扩展和/或插件的方法及装置
CN105373396A (zh) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 插件平台中的插件更新方法和装置
CN111124526A (zh) * 2018-11-01 2020-05-08 北京奇虎科技有限公司 依赖库管理方法、装置、存储介质和计算机设备
CN111367577A (zh) * 2018-12-25 2020-07-03 中兴通讯股份有限公司 加载应用的插件的方法、装置和终端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138479A1 (zh) * 2022-01-21 2023-07-27 北京字跳网络技术有限公司 一种插件的加载方法及装置

Similar Documents

Publication Publication Date Title
CN110351325B (zh) 一种数据处理方法及相关设备
CN109391673B (zh) 一种管理更新文件的方法、***及终端设备
CN112860953A (zh) 图数据库的数据导入方法、装置、设备及存储介质
CN113779452B (zh) 数据处理方法、装置、设备及存储介质
CN112068899A (zh) 插件加载方法、装置、电子设备及存储介质
CN113656098A (zh) 配置获取方法及***
CN112468585A (zh) 数据传输方法、装置、电子设备及存储介质
CN112395339A (zh) ***间数据准入校验方法、装置、计算机设备和存储介质
CN111339173A (zh) 数据共享方法、服务器及可读存储介质
CN110955460A (zh) 一种服务进程启动方法、装置、电子设备和存储介质
CN110704041A (zh) 软件开发方法及装置
CN113259437B (zh) 车辆网络协议的确定方法、装置及存储介质
CN114547422A (zh) 一种防止重复点击页面元素的方法和装置
CN113742050B (zh) 操作数据对象的方法、装置、计算设备和存储介质
CN112637085B (zh) 流量录制方法、装置、计算机设备和存储介质
CN111651469B (zh) 一种管理区块链***合约的方法和装置
CN113608831A (zh) 一种插件实例管理方法、***、存储介质及设备
CN111538651A (zh) 接口测试方法、装置、服务器及存储介质
CN114567644B (zh) 一种数据同步的方法、装置及电子设备
CN112286545B (zh) 数据更新方法、装置、设备和存储介质
CN115604345B (zh) 应用程序的开发方法及计算机可读存储介质
CN111026563B (zh) 调用接口的方法、装置、存储介质及电子设备
WO2023143061A1 (zh) 一种数据访问方法及其数据访问***
CN109962883B (zh) 信息指示的方法、网络设备与用户设备
CN117008878A (zh) 规则生成方法、装置、设备及存储介质

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