CN117850842A - 一种插件更新方法、装置、设备及其存储介质 - Google Patents

一种插件更新方法、装置、设备及其存储介质 Download PDF

Info

Publication number
CN117850842A
CN117850842A CN202410029636.2A CN202410029636A CN117850842A CN 117850842 A CN117850842 A CN 117850842A CN 202410029636 A CN202410029636 A CN 202410029636A CN 117850842 A CN117850842 A CN 117850842A
Authority
CN
China
Prior art keywords
plug
public
module
ins
target
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
CN202410029636.2A
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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202410029636.2A priority Critical patent/CN117850842A/zh
Publication of CN117850842A publication Critical patent/CN117850842A/zh
Pending legal-status Critical Current

Links

Abstract

本申请实施例属于金融科技技术领域,应用于金融业务系统公共插件同步更新场景中,涉及一种插件更新方法、装置、设备及其存储介质,通过在编译打包阶段引入统计组件,统计公共插件可引入的所有执行模块的模块标识,将插件标识信息和模块标识写入到目标公共文件内,便于后续公共插件的代码发生更新时,识别出公共插件的插件标识信息,根据插件标识信息识别出公共插件所对应的所有功能模块或执行模块,及时做到同步更新处理。尤其是,业务模块繁杂的金融业务系统中,采用本申请所述的插件更新方法,能够在公共插件发生修改更新时,及时在不同的业务模块内做到公共插件的同步更新,减少了人工手动同步更新的时间消耗,也避免了遗漏更新的情况发生。

Description

一种插件更新方法、装置、设备及其存储介质
技术领域
本申请涉及金融科技技术领域,应用于金融业务系统公共插件同步更新场景中,尤其涉及一种插件更新方法、装置、设备及其存储介质。
背景技术
随着互联网的飞速发展,各行各业都在依托互联网寻求行业突破点,近年来,金融行业也正在围绕着互联网进行线上业务拓展。由于金融行业涉及的业务量和数据量较大,使得业务业务模块也较为多杂。尤其是在金融投资、金融理财或者股票分析等多个金融服务领域。
在金融业务系统中,将一些方法或者功能封装到一个文件里面,然后在能够使用的业务模块内作为插件引入是很常见的功能,弊端在于,当对公共插件进行修改时,需要在对应引入的所有业务模块内进行同步修改,目前的修改更新方式为,利用IDE的全局搜索功能进行业务模块搜索,再根据搜索结果进行更改,而搜索需要知道业务模块全名进行精确匹配,或者根据业务模块关键字段进行模糊搜索,在一大堆搜索结果里面进行最终结果筛选,获得最终的业务模块,此种插件更新方式较为费时费力,且较大的金融业务系统业务模块较多,还容易漏掉需要更新的业务模块。
发明内容
本申请实施例的目的在于提出一种插件更新方法、装置、设备及其存储介质,以解决现有技术在进行插件更新时,较为费时费力,且较大的金融业务系统业务模块较多,还容易漏掉需要更新的业务模块的问题。
为了解决上述技术问题,本申请实施例提供插件更新方法,采用了如下所述的技术方案:
一种插件更新方法,包括下述步骤:
获取待打包的已编译完成的公共插件的代码;
通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息,其中,在打包处理过程中,根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内;
根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改;
若所述公共插件的代码在被引用过程中未被修改,则解析所述目标公共文件,获得所述模块标识,继续根据所述模块标识将所述公共插件的代码引入到所述所有执行模块;
若所述公共插件的代码在被引用过程中被修改,则解析所述目标公共文件,获得所述模块标识,根据所述模块标识识别出所述公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的更新。
进一步的,所述获取待打包的已编译完成的公共插件的代码的步骤,具体包括:
在功能性业务代码编写完成时,通过封装方式提取出所述功能性业务代码中的公共代码;
所述通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息的步骤,具体包括:
通过webpack插件打包工具,对所述公共代码进行打包处理,获得所述公共插件,以及生成所述公共插件对应的插件标识信息和插件描述性文本信息;
根据所述插件标识信息和插件描述性文本信息,生成所述目标公共文件。
进一步的,所述根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内的步骤,具体包括:
执行功能性业务代码编译步骤,获得编译结果;
根据所述编译结果,确定所有公共插件分别可引入的所有执行模块以及所述所有执行模块的模块标识;
根据插件标识信息和所述模块标识,构建公共插件与执行模块间的引入关联图谱;
基于所述引入关联图谱,以每个公共插件的插件标识信息为键数据以及每个公共插件分别对应的可引入执行模块的模块标识为值数据,构建键值对,其中,每个键值对键数据唯一,值数据为数组形式数据包括一个或多个模块标识;
将所述键值对加入到所述目标公共文件内,以实现将所述模块标识加入到所述目标公共文件内。
进一步的,所述根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改的步骤,具体包括:
将所述公共插件当次被引入的执行模块作为目标执行模块;
获取所述公共插件被引入所述目标执行模块前的插件代码作为第一代码,以及
获取所述公共插件被引入所述目标执行模块后的插件代码作为第二代码;
对比所述第一代码和所述第二代码;
若通过对比,所述第二代码与所述第一代码一致,则所述公共插件的代码在被引用过程中未被修改;
若通过对比,所述第二代码与所述第一代码不一致,则所述公共插件的代码在被引用过程中被修改。
进一步的,在执行所述若通过对比,所述第二代码与所述第一代码不一致,则所述公共插件的代码在被引用过程中被修改的步骤之后,所述方法还包括:
获取所述目标执行模块的模块标识。
进一步的,所述将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的代码更新的步骤,具体包括:
通过所述目标公共文件和所述公共插件的插件标识信息,识别出所述公共插件所对应的键值对;
对所述公共插件所对应的键值对进行解析,获取所述键值对中的值数据;
采用数组解析方式,对所述值数据进行解析,获得解析结果;
若通过所述解析结果,识别出所述值数据中仅且只包含一个模块标识,则所述所有执行模块引入的所述公共插件的代码已被修改,完成目标业务系统内所述公共插件的代码更新;
若通过所述解析结果,识别出所述值数据中包含若干个模块标识,则通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块,并将修改后的公共插件的代码引入到除所述目标执行模块之外的所有执行模块内,完成目标业务系统内所述公共插件的代码更新。
进一步的,所述通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块,并将修改后的公共插件的代码引入到除所述目标执行模块之外的所有执行模块内,完成目标业务系统内所述公共插件的代码更新的步骤,具体包括:
通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块;
根据所述目标执行模块的模块标识,从所述所有执行模块内识别出除所述目标执行模块之外的所有执行模块;
获取所述除所述目标执行模块之外的所有执行模块的模块标识,构建模块标识数组;
根据所述模块标识数组,依次筛选出不同的执行模块;
将修改后的公共插件的代码引入到筛选出的不同的执行模块内,完成目标业务系统内所述公共插件的代码更新。
为了解决上述技术问题,本申请实施例还提供插件更新装置,采用了如下所述的技术方案:
一种插件更新装置,包括:
待打包代码获取模块,用于获取待打包的已编译完成的公共插件的代码;
公共插件打包处理模块,用于通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息,其中,在打包处理过程中,根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内;
修改判断模块,用于根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改;
第一分支处理模块,用于若所述公共插件的代码在被引用过程中未被修改,则解析所述目标公共文件,获得所述模块标识,继续根据所述模块标识将所述公共插件的代码引入到所述所有执行模块;
第二分支处理模块,用于若所述公共插件的代码在被引用过程中被修改,则解析所述目标公共文件,获得所述模块标识,根据所述模块标识识别出所述公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的更新。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述所述的插件更新方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述所述的插件更新方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例所述插件更新方法,通过获取待打包的已编译完成的公共插件的代码;通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、公共插件以及公共插件的插件标识信息,其中,在打包处理过程中,根据插件打包工具内预先引入的统计组件,统计公共插件可引入的所有执行模块的模块标识,并将模块标识和插件标识信息加入到目标公共文件内;根据预设的判断组件,判断公共插件的代码在被引用过程中是否被修改;若未被修改,则解析目标公共文件,获得模块标识,继续根据模块标识将公共插件的代码引入到所有执行模块;若公共插件的代码在被引用过程中被修改,则解析目标公共文件,获得模块标识,根据模块标识识别出公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所有执行模块内,以更新所有执行模块引入的未修改前的公共插件的代码,完成目标业务系统内公共插件的更新。通过在编译打包阶段,引入统计组件,统计公共插件可引入的所有执行模块的模块标识,并将插件标识信息和模块标识写入到目标公共文件内,便于后续公共插件的代码发生更新时,通过目标公共文件识别出公共插件的插件标识信息,根据插件标识信息识别出公共插件所对应的所有功能模块或执行模块,及时做到同步更新处理,也避免了遗漏更新的情况发生。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的插件更新方法的一个实施例的流程图;
图3是图2所示步骤203的一个具体实施例的流程图;
图4是图2所示步骤205的一个具体实施例的流程图;
图5是图4所示步骤405的一个具体实施例的流程图;
图6是根据本申请的插件更新装置的一个实施例的结构示意图;
图7是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的插件更新方法一般由服务器/终端设备执行,相应地,插件更新装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的插件更新方法的一个实施例的流程图。所述的插件更新方法,包括以下步骤:
步骤201,获取待打包的已编译完成的公共插件的代码。
本实施例中,所述公共插件指能够在目标业务系统中被多个不同的功能模块或者执行模块所共同使用的插件,所述目标业务系统包括金融业务系统,例如,银行业务系统,手机银行APP等,以手机银行APP为例,一般情况下,手机银行APP为服务于用户端的APP,而且在用户使用时,手机银行APP提供给用户的界面,界面头部和界面尾部都是固定不变的,仅页面中间的展示内容在根据用户操作发生执行流转,从而实现页面间的转换。此时,可以将所述界面头部和界面尾部分别对应的代码封装为公共插件,无论用户发出何种操作,在进行页面渲染时都调用所述公共插件,以渲染所述界面头部和界面尾部。
本实施例中,所述获取待打包的已编译完成的公共插件的代码的步骤,具体包括:在功能性业务代码编写完成时,通过封装方式提取出所述功能性业务代码中的公共代码。
步骤202,通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息,其中,在打包处理过程中,根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内。
本实施例中,所述通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息的步骤,具体包括:通过webpack插件打包工具,对所述公共代码进行打包处理,获得所述公共插件,以及生成所述公共插件对应的插件标识信息和插件描述性文本信息;根据所述插件标识信息和插件描述性文本信息,生成所述目标公共文件。
通过生成所述公共插件对应的插件标识信息,并根据所述插件标识信息和插件描述性文本信息,生成所述目标公共文件,便于后续在公共插件的代码发生更新时,通过所述目标公共文件识别出所述公共插件的插件标识信息,也便于根据所述插件标识信息识别出所述公共插件所对应的所有功能模块或执行模块,及时做到统一更新处理。
本实施例中,所述根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内的步骤,具体包括:执行功能性业务代码编译步骤,获得编译结果;根据所述编译结果,确定所有公共插件分别可引入的所有执行模块以及所述所有执行模块的模块标识;根据插件标识信息和所述模块标识,构建公共插件与执行模块间的引入关联图谱;基于所述引入关联图谱,以每个公共插件的插件标识信息为键数据以及每个公共插件分别对应的可引入执行模块的模块标识为值数据,构建键值对,其中,每个键值对键数据唯一,值数据为数组形式数据包括一个或多个模块标识;将所述键值对加入到所述目标公共文件内,以实现将所述模块标识加入到所述目标公共文件内。
通过根据所述编译结果,确定所有公共插件分别可引入的所有执行模块以及所述所有执行模块的模块标识;根据插件标识信息和所述模块标识,构建公共插件与执行模块间的引入关联图谱;基于所述引入关联图谱,以每个公共插件的插件标识信息为键数据以及每个公共插件分别对应的可引入执行模块的模块标识为值数据,构建键值对,将所述键值对加入到所述目标公共文件内,以实现将所述模块标识加入到所述目标公共文件内。便于在后续公共插件的代码发生更新时,通过所述目标公共文件识别出所述公共插件的插件标识信息,也根据所述插件标识信息对应的键值对识别出所述公共插件所对应的所有功能模块或执行模块,及时做到统一更新处理。
步骤203,根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改。
继续参考图3,图3是图2所示步骤203的一个具体实施例的流程图,包括:
步骤301,将所述公共插件当次被引入的执行模块作为目标执行模块;
步骤302,获取所述公共插件被引入所述目标执行模块前的插件代码作为第一代码,以及
获取所述公共插件被引入所述目标执行模块后的插件代码作为第二代码;
步骤303,对比所述第一代码和所述第二代码;
步骤304,若通过对比,所述第二代码与所述第一代码一致,则所述公共插件的代码在被引用过程中未被修改;
步骤305,若通过对比,所述第二代码与所述第一代码不一致,则所述公共插件的代码在被引用过程中被修改。
本实施例中,在执行所述若通过对比,所述第二代码与所述第一代码不一致,则所述公共插件的代码在被引用过程中被修改的步骤之后,所述方法还包括:获取所述目标执行模块的模块标识。
本实施例中,根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改,能够在公共插件每次被执行模块引入后,进行及时筛查判断,从而在公共插件发生修改时,能够及时发现被修改的公共插件。
步骤204,若所述公共插件的代码在被引用过程中未被修改,则解析所述目标公共文件,获得所述模块标识,继续根据所述模块标识将所述公共插件的代码引入到所述所有执行模块。
本实施例中,所述若所述公共插件的代码在被引用过程中未被修改,则解析所述目标公共文件,获得所述模块标识,继续根据所述模块标识将所述公共插件的代码引入到所述所有执行模块,则说明在多次的公共插件引入使用中,所述公共插件都未被修改,表明未出现插件更新的情况,因此,无需对插件进行更新处理。
步骤205,若所述公共插件的代码在被引用过程中被修改,则解析所述目标公共文件,获得所述模块标识,根据所述模块标识识别出所述公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的更新。
本实施例中,所述若所述公共插件的代码在被引用过程中被修改,则解析所述目标公共文件,获得所述模块标识,根据所述模块标识识别出所述公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的更新,则说明在多次的公共插件引入使用中,所述公共插件存在被修改的情况,表明出现插件更新的情况,因此,为了保证所述公共插件的统一更新效果,需要结合所述执行模块进行及时更新处理。
继续参考图4,图4是图2所示步骤205的一个具体实施例的流程图,包括:
步骤401,通过所述目标公共文件和所述公共插件的插件标识信息,识别出所述公共插件所对应的键值对;
步骤402,对所述公共插件所对应的键值对进行解析,获取所述键值对中的值数据;
步骤403,采用数组解析方式,对所述值数据进行解析,获得解析结果;
步骤404,若通过所述解析结果,识别出所述值数据中仅且只包含一个模块标识,则所述所有执行模块引入的所述公共插件的代码已被修改,完成目标业务系统内所述公共插件的代码更新;
通过识别,若所述值数据中仅且只包含一个模块标识,则说明所述公共插件仅在所述目标执行模块中被引入,由于所述目标执行模块引入的所述公共插件的代码已被修改,因此,无需进行重新引入修改,即已完成目标业务系统内所述公共插件的代码更新。
步骤405,若通过所述解析结果,识别出所述值数据中包含若干个模块标识,则通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块,并将修改后的公共插件的代码引入到除所述目标执行模块之外的所有执行模块内,完成目标业务系统内所述公共插件的代码更新。
通过所述目标公共文件,识别出所述公共插件所引入的所有执行模块,然后,根据所述所有执行模块的模块标识,将更新修改后的所述公共插件的代码引入到所述所有执行模块内,以实现目标业务系统内所述公共插件的代码更新,其中,所述目标业务系统为金融业务系统,此种方式,能够在金融业务系统中公共插件发生更新时,及时对所述金额业务系统中应用到所述公共插件的执行模块进行更新,保证了同步更新。
继续参考图5,图5是图4所示步骤405的一个具体实施例的流程图,包括:
步骤501,通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块;
步骤502,根据所述目标执行模块的模块标识,从所述所有执行模块内识别出除所述目标执行模块之外的所有执行模块;
步骤503,获取所述除所述目标执行模块之外的所有执行模块的模块标识,构建模块标识数组;
步骤504,根据所述模块标识数组,依次筛选出不同的执行模块;
步骤505,将修改后的公共插件的代码引入到筛选出的不同的执行模块内,完成目标业务系统内所述公共插件的代码更新。
通过对所述键值对中值数据进行解析,识别所述所有执行模块内识别出除所述目标执行模块之外的所有执行模块,并构建模块标识数组;根据所述模块标识数组,依次筛选出不同的执行模块;将修改后的公共插件的代码引入到筛选出的不同的执行模块内,完成目标业务系统内所述公共插件的代码更新。在所述目标执行模块进行公共插件引入时,进行了公共插件修改时,及时识别出所述目标业务系统中其他引用所述公共插件的执行模块,并及时做到同步更新所述公共插件。
本申请通过获取待打包的已编译完成的公共插件的代码;通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、公共插件以及公共插件的插件标识信息,其中,在打包处理过程中,根据插件打包工具内预先引入的统计组件,统计公共插件可引入的所有执行模块的模块标识,并将模块标识和插件标识信息加入到目标公共文件内;根据预设的判断组件,判断公共插件的代码在被引用过程中是否被修改;若未被修改,则解析目标公共文件,获得模块标识,继续根据模块标识将公共插件的代码引入到所有执行模块;若公共插件的代码在被引用过程中被修改,则解析目标公共文件,获得模块标识,根据模块标识识别出公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所有执行模块内,以更新所有执行模块引入的未修改前的公共插件的代码,完成目标业务系统内公共插件的更新。通过在编译打包阶段,引入统计组件,统计公共插件可引入的所有执行模块的模块标识,并将插件标识信息和模块标识写入到目标公共文件内,便于后续公共插件的代码发生更新时,通过目标公共文件识别出公共插件的插件标识信息,根据插件标识信息识别出公共插件所对应的所有功能模块或执行模块,及时做到同步更新处理,也避免了遗漏更新的情况发生。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大插件更新技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例中,通过获取待打包的已编译完成的公共插件的代码;通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、公共插件以及公共插件的插件标识信息,其中,在打包处理过程中,根据插件打包工具内预先引入的统计组件,统计公共插件可引入的所有执行模块的模块标识,并将模块标识和插件标识信息加入到目标公共文件内;根据预设的判断组件,判断公共插件的代码在被引用过程中是否被修改;若未被修改,则解析目标公共文件,获得模块标识,继续根据模块标识将公共插件的代码引入到所有执行模块;若公共插件的代码在被引用过程中被修改,则解析目标公共文件,获得模块标识,根据模块标识识别出公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所有执行模块内,以更新所有执行模块引入的未修改前的公共插件的代码,完成目标业务系统内公共插件的更新。通过在编译打包阶段,引入统计组件,统计公共插件可引入的所有执行模块的模块标识,并将插件标识信息和模块标识写入到目标公共文件内,便于后续公共插件的代码发生更新时,通过目标公共文件识别出公共插件的插件标识信息,根据插件标识信息识别出公共插件所对应的所有功能模块或执行模块,及时做到同步更新处理,也避免了遗漏更新的情况发生。
进一步参考图6,作为对上述图2所示方法的实现,本申请提供了插件更新装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例所述的插件更新装置600包括:待打包代码获取模块601、公共插件打包处理模块602、修改判断模块603、第一分支处理模块604和第二分支处理模块605。其中:
待打包代码获取模块601,用于获取待打包的已编译完成的公共插件的代码;
公共插件打包处理模块602,用于通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息,其中,在打包处理过程中,根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内;
修改判断模块603,用于根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改;
第一分支处理模块604,用于若所述公共插件的代码在被引用过程中未被修改,则解析所述目标公共文件,获得所述模块标识,继续根据所述模块标识将所述公共插件的代码引入到所述所有执行模块;
第二分支处理模块605,用于若所述公共插件的代码在被引用过程中被修改,则解析所述目标公共文件,获得所述模块标识,根据所述模块标识识别出所述公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的更新。
本申请通过获取待打包的已编译完成的公共插件的代码;通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、公共插件以及公共插件的插件标识信息,其中,在打包处理过程中,根据插件打包工具内预先引入的统计组件,统计公共插件可引入的所有执行模块的模块标识,并将模块标识和插件标识信息加入到目标公共文件内;根据预设的判断组件,判断公共插件的代码在被引用过程中是否被修改;若未被修改,则解析目标公共文件,获得模块标识,继续根据模块标识将公共插件的代码引入到所有执行模块;若公共插件的代码在被引用过程中被修改,则解析目标公共文件,获得模块标识,根据模块标识识别出公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所有执行模块内,以更新所有执行模块引入的未修改前的公共插件的代码,完成目标业务系统内公共插件的更新。通过在编译打包阶段,引入统计组件,统计公共插件可引入的所有执行模块的模块标识,并将插件标识信息和模块标识写入到目标公共文件内,便于后续公共插件的代码发生更新时,通过目标公共文件识别出公共插件的插件标识信息,根据插件标识信息识别出公共插件所对应的所有功能模块或执行模块,及时做到同步更新处理,也避免了遗漏更新的情况发生。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图7,图7为本实施例计算机设备基本结构框图。
所述计算机设备7包括通过系统总线相互通信连接存储器7a、处理器7b、网络接口7c。需要指出的是,图中仅示出了具有组件7a-7c的计算机设备7,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器7a至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器7a可以是所述计算机设备7的内部存储单元,例如该计算机设备7的硬盘或内存。在另一些实施例中,所述存储器7a也可以是所述计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器7a还可以既包括所述计算机设备7的内部存储单元也包括其外部存储设备。本实施例中,所述存储器7a通常用于存储安装于所述计算机设备7的操作系统和各类应用软件,例如一种插件更新方法的计算机可读指令等。此外,所述存储器7a还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器7b在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他插件更新芯片。该处理器7b通常用于控制所述计算机设备7的总体操作。本实施例中,所述处理器7b用于运行所述存储器7a中存储的计算机可读指令或者处理数据,例如运行所述插件更新方法的计算机可读指令。
所述网络接口7c可包括无线网络接口或有线网络接口,该网络接口7c通常用于在所述计算机设备7与其他电子设备之间建立通信连接。
本实施例提出的计算机设备,属于金融科技技术领域,应用于金融业务系统公共插件同步更新场景中。本申请通过获取待打包的已编译完成的公共插件的代码;通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、公共插件以及公共插件的插件标识信息,其中,在打包处理过程中,根据插件打包工具内预先引入的统计组件,统计公共插件可引入的所有执行模块的模块标识,并将模块标识和插件标识信息加入到目标公共文件内;根据预设的判断组件,判断公共插件的代码在被引用过程中是否被修改;若未被修改,则解析目标公共文件,获得模块标识,继续根据模块标识将公共插件的代码引入到所有执行模块;若公共插件的代码在被引用过程中被修改,则解析目标公共文件,获得模块标识,根据模块标识识别出公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所有执行模块内,以更新所有执行模块引入的未修改前的公共插件的代码,完成目标业务系统内公共插件的更新。通过在编译打包阶段,引入统计组件,统计公共插件可引入的所有执行模块的模块标识,并将插件标识信息和模块标识写入到目标公共文件内,便于后续公共插件的代码发生更新时,通过目标公共文件识别出公共插件的插件标识信息,根据插件标识信息识别出公共插件所对应的所有功能模块或执行模块,及时做到同步更新处理,也避免了遗漏更新的情况发生。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被处理器执行,以使所述处理器执行如上述的插件更新方法的步骤。
本实施例提出的计算机可读存储介质,属于金融科技技术领域,应用于金融业务系统公共插件同步更新场景中。本申请通过获取待打包的已编译完成的公共插件的代码;通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、公共插件以及公共插件的插件标识信息,其中,在打包处理过程中,根据插件打包工具内预先引入的统计组件,统计公共插件可引入的所有执行模块的模块标识,并将模块标识和插件标识信息加入到目标公共文件内;根据预设的判断组件,判断公共插件的代码在被引用过程中是否被修改;若未被修改,则解析目标公共文件,获得模块标识,继续根据模块标识将公共插件的代码引入到所有执行模块;若公共插件的代码在被引用过程中被修改,则解析目标公共文件,获得模块标识,根据模块标识识别出公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所有执行模块内,以更新所有执行模块引入的未修改前的公共插件的代码,完成目标业务系统内公共插件的更新。通过在编译打包阶段,引入统计组件,统计公共插件可引入的所有执行模块的模块标识,并将插件标识信息和模块标识写入到目标公共文件内,便于后续公共插件的代码发生更新时,通过目标公共文件识别出公共插件的插件标识信息,根据插件标识信息识别出公共插件所对应的所有功能模块或执行模块,及时做到同步更新处理,也避免了遗漏更新的情况发生。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种插件更新方法,其特征在于,包括下述步骤:
获取待打包的已编译完成的公共插件的代码;
通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息,其中,在打包处理过程中,根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内;
根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改;
若所述公共插件的代码在被引用过程中未被修改,则解析所述目标公共文件,获得所述模块标识,继续根据所述模块标识将所述公共插件的代码引入到所述所有执行模块;
若所述公共插件的代码在被引用过程中被修改,则解析所述目标公共文件,获得所述模块标识,根据所述模块标识识别出所述公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的更新。
2.根据权利要求1所述的插件更新方法,其特征在于,所述获取待打包的已编译完成的公共插件的代码的步骤,具体包括:
在功能性业务代码编写完成时,通过封装方式提取出所述功能性业务代码中的公共代码;
所述通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息的步骤,具体包括:
通过webpack插件打包工具,对所述公共代码进行打包处理,获得所述公共插件,以及生成所述公共插件对应的插件标识信息和插件描述性文本信息;
根据所述插件标识信息和插件描述性文本信息,生成所述目标公共文件。
3.根据权利要求1所述的插件更新方法,其特征在于,所述根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内的步骤,具体包括:
执行功能性业务代码编译步骤,获得编译结果;
根据所述编译结果,确定所有公共插件分别可引入的所有执行模块以及所述所有执行模块的模块标识;
根据插件标识信息和所述模块标识,构建公共插件与执行模块间的引入关联图谱;
基于所述引入关联图谱,以每个公共插件的插件标识信息为键数据以及每个公共插件分别对应的可引入执行模块的模块标识为值数据,构建键值对,其中,每个键值对键数据唯一,值数据为数组形式数据包括一个或多个模块标识;
将所述键值对加入到所述目标公共文件内,以实现将所述模块标识加入到所述目标公共文件内。
4.根据权利要求3所述的插件更新方法,其特征在于,所述根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改的步骤,具体包括:
将所述公共插件当次被引入的执行模块作为目标执行模块;
获取所述公共插件被引入所述目标执行模块前的插件代码作为第一代码,以及
获取所述公共插件被引入所述目标执行模块后的插件代码作为第二代码;
对比所述第一代码和所述第二代码;
若通过对比,所述第二代码与所述第一代码一致,则所述公共插件的代码在被引用过程中未被修改;
若通过对比,所述第二代码与所述第一代码不一致,则所述公共插件的代码在被引用过程中被修改。
5.根据权利要求4所述的插件更新方法,其特征在于,在执行所述若通过对比,所述第二代码与所述第一代码不一致,则所述公共插件的代码在被引用过程中被修改的步骤之后,所述方法还包括:
获取所述目标执行模块的模块标识。
6.根据权利要求4或5所述的插件更新方法,其特征在于,所述将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的代码更新的步骤,具体包括:
通过所述目标公共文件和所述公共插件的插件标识信息,识别出所述公共插件所对应的键值对;
对所述公共插件所对应的键值对进行解析,获取所述键值对中的值数据;
采用数组解析方式,对所述值数据进行解析,获得解析结果;
若通过所述解析结果,识别出所述值数据中仅且只包含一个模块标识,则所述所有执行模块引入的所述公共插件的代码已被修改,完成目标业务系统内所述公共插件的代码更新;
若通过所述解析结果,识别出所述值数据中包含若干个模块标识,则通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块,并将修改后的公共插件的代码引入到除所述目标执行模块之外的所有执行模块内,完成目标业务系统内所述公共插件的代码更新。
7.根据权利要求6所述的插件更新方法,其特征在于,所述通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块,并将修改后的公共插件的代码引入到除所述目标执行模块之外的所有执行模块内,完成目标业务系统内所述公共插件的代码更新的步骤,具体包括:
通过所述若干个模块标识,识别出所述公共插件所对应的所有执行模块;
根据所述目标执行模块的模块标识,从所述所有执行模块内识别出除所述目标执行模块之外的所有执行模块;
获取所述除所述目标执行模块之外的所有执行模块的模块标识,构建模块标识数组;
根据所述模块标识数组,依次筛选出不同的执行模块;
将修改后的公共插件的代码引入到筛选出的不同的执行模块内,完成目标业务系统内所述公共插件的代码更新。
8.一种插件更新装置,其特征在于,包括:
待打包代码获取模块,用于获取待打包的已编译完成的公共插件的代码;
公共插件打包处理模块,用于通过预设的插件打包工具对所述公共插件的代码进行打包处理,以生成目标公共文件、所述公共插件以及所述公共插件的插件标识信息,其中,在打包处理过程中,根据所述插件打包工具内预先引入的统计组件,统计所述公共插件可引入的所有执行模块的模块标识,并将所述模块标识和所述插件标识信息加入到所述目标公共文件内;
修改判断模块,用于根据预设的判断组件,判断所述公共插件的代码在被引用过程中是否被修改;
第一分支处理模块,用于若所述公共插件的代码在被引用过程中未被修改,则解析所述目标公共文件,获得所述模块标识,继续根据所述模块标识将所述公共插件的代码引入到所述所有执行模块;
第二分支处理模块,用于若所述公共插件的代码在被引用过程中被修改,则解析所述目标公共文件,获得所述模块标识,根据所述模块标识识别出所述公共插件可引入的所有执行模块,并将修改后的公共插件的代码引入到所述所有执行模块内,以更新所述所有执行模块引入的未修改前的所述公共插件的代码,完成目标业务系统内所述公共插件的更新。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的插件更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的插件更新方法的步骤。
CN202410029636.2A 2024-01-08 2024-01-08 一种插件更新方法、装置、设备及其存储介质 Pending CN117850842A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410029636.2A CN117850842A (zh) 2024-01-08 2024-01-08 一种插件更新方法、装置、设备及其存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410029636.2A CN117850842A (zh) 2024-01-08 2024-01-08 一种插件更新方法、装置、设备及其存储介质

Publications (1)

Publication Number Publication Date
CN117850842A true CN117850842A (zh) 2024-04-09

Family

ID=90537847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410029636.2A Pending CN117850842A (zh) 2024-01-08 2024-01-08 一种插件更新方法、装置、设备及其存储介质

Country Status (1)

Country Link
CN (1) CN117850842A (zh)

Similar Documents

Publication Publication Date Title
CN115794437A (zh) 微服务的调用方法、装置、计算机设备及存储介质
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN117216114A (zh) 一种数据流关联方法、装置、设备及其存储介质
CN117271121A (zh) 一种任务处理进度控制方法、装置、设备及其存储介质
CN116383787A (zh) 页面创建方法、装置、计算机设备及存储介质
CN114626352B (zh) 报表自动化生成方法、装置、计算机设备及存储介质
CN115712422A (zh) 表单页面的生成方法、装置、计算机设备及存储介质
CN115061916A (zh) 自动化生成接口测试用例的方法及其相关设备
CN117850842A (zh) 一种插件更新方法、装置、设备及其存储介质
CN117785181A (zh) 一种代码执行方法、装置、设备及其存储介质
CN117874073A (zh) 一种搜索优化方法、装置、设备及其存储介质
CN115546356A (zh) 动画生成方法、装置、计算机设备及存储介质
CN117421233A (zh) 基于注解的代码生成方法、装置、计算机设备及存储介质
CN117235260A (zh) 基于人工智能的文本标注方法、装置、设备及存储介质
CN117234505A (zh) 一种交互页面生成方法、装置、设备及其存储介质
CN115578050A (zh) 审批进度识别方法、装置、计算机设备及存储介质
CN117806738A (zh) 基于微链路模型的业务调度方法、装置、设备及存储介质
CN116737833A (zh) 基于分区模式的cdc数据资源同步方法及其相关设备
CN117827320A (zh) 一种服务执行方法、装置、设备及其存储介质
CN116467166A (zh) 一种缺陷信息处理方法、装置、设备及其存储介质
CN117234769A (zh) 一种页面白屏事件处理方法、装置、设备及其存储介质
CN114528220A (zh) 测试案例的生成方法、装置、计算机设备及存储介质
CN115268933A (zh) 流程文档自动生成方法、装置、计算机设备及存储介质
CN117591190A (zh) 一种应用数据加载优化方法、装置、设备及其存储介质
CN114996616A (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