CN112217731A - 目标应用的生成方法及装置、存储介质 - Google Patents
目标应用的生成方法及装置、存储介质 Download PDFInfo
- Publication number
- CN112217731A CN112217731A CN202011111720.7A CN202011111720A CN112217731A CN 112217731 A CN112217731 A CN 112217731A CN 202011111720 A CN202011111720 A CN 202011111720A CN 112217731 A CN112217731 A CN 112217731A
- Authority
- CN
- China
- Prior art keywords
- application
- target
- main frame
- component
- routing address
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种目标应用的生成方法及装置、存储介质,上述目标应用的生成方法包括:从预设资源包中获取待生成的目标应用的主框架;在目标容器中打开主框架,以获取主框架中组件的路由地址;根据组件的路由地址从目标资源库中加载与组件的路由地址对应的前端子应用,并根据前端子应用以及主框架生成目标应用,采用上述技术方案,可以解决现有技术中,同一组件多次在不同的项目中重写,无法保证样式统一等问题,达到在生成目标应用时,使得组件的样式得到统一,提高了目标应用开发的灵活性,提升了开发效率。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种目标应用的生成方法及装置、存储介质。
背景技术
近年来,微服务已迅速普及,许多组织都使用这种体系结构样式来避免大型单体应用的局限性。尽管有很多介绍微服务的文章,但还是有许多公司局限于单体式前端应用。
随着APP版本的快速迭代,开发周期较短,许多业务需要H5完成,但是随着H5资源包越来越多,以及每次需要获得同样的数据信息,而且同样业务组件多次在不同项目中重写,不能保证样式UI的统一。
当构建一个渐进式的Web应用程序时,很难将新的功能实现于现有的整体应用中,并且无法在现有的构建过程中使用对应的构建工具。此外,当需要扩展的开发团队,以便多个团队可以同时处理一个产品时,由于现有应用中的耦合和复杂度让每个开发者互相掣肘,这些真实存在的问题极大地降低了大型团队的开发效率。
针对相关技术中,同一组件多次在不同的项目中重写,无法保证样式统一等问题,尚未提出有效的技术方案。
发明内容
本发明实施例提供了一种目标应用的生成方法及装置、存储介质,以至少解决相关技术中,同一组件多次在不同的项目中重写,无法保证样式统一等问题。
根据本发明的一个实施例,提供了一种目标应用的生成方法,包括:从预设资源包中获取待生成的目标应用的主框架;在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
在一个示例性实施例中,根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,包括:获取前端子应用与路由地址的对应配置关系,其中,所述对应配置关系保存在所述目标资源库中;在所述对应配置关系中,查找与所述组件的路由地址对应的前端子应用;从所述目标资源库中加载查找到的所述组件的路由地址对应的前端子应用。
在一个示例性实施例中,获取前端子应用与路由地址的对应配置关系,包括:获取为前端子应用配置的标识信息,其中,所述标识信息用于唯一标识所述前端子应用;配置所述标识信息与组件的路由地址的对应关系,以获取前端子应用与路由地址的对应配置关系。
在一个示例性实施例中,获取为前端子应用配置的标识信息,至少包括以下之一:获取为所述前端子应用配置的应用注册表,其中,所述应用注册表中至少包括以下之一:前端子应用的应用信息及应用入口;获取为所述前端子应用添加的标识符,其中,所述标识符用于对前端子应用的对应功能进行标识。
在一个示例性实施例中,根据所述前端子应用以及所述主框架生成所述目标应用,包括:在确定所述主框架下的所述组件均加载完对应的所述前端子应用的情况下,将所述主框架与所述前端子应用进行打包,将打包结果作为所述目标应用。
在一个示例性实施例中,在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址,包括:获取所述目标应用的目标类别;在所述目标容器中打开所述主框架的情况下,确定与所述目标类别对应的所述主框架中包含的目标组件,以及确定出与所述目标类别对应的路由系统;根据所述目标组件以及所述目标类别对应的路由系统确定出所述主框架中组件的路由地址。
在一个示例性实施例中,上述方法还包括;对所述主框架进行监听;在监听到所述主框架中存在任一组件的路由地址发生变化的情况下,卸载所述路由地址发生改变的组件所对应的前端子应用。
在一个示例性实施例中,上述方法还包括:获取所述主框架中每一个组件的路由地址,并根据所述每一个组件的路由地址从目标资源库中加载与所述每一个组件的路由地址一一对应的前端子应用。
根据本发明的另一个实施例,提供了一种目标应用的生成装置,包括:第一获取模块,用于从预设资源包中获取待生成的目标应用的主框架;第二获取模块,用于在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;生成模块,用于根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
在一个示例性实施例中,上述生成模块,还用于获取前端子应用与路由地址的对应配置关系,其中,所述对应配置关系保存在所述目标资源库中;在所述对应配置关系中,查找与所述组件的路由地址对应的前端子应用;从所述目标资源库中加载查找到的所述组件的路由地址对应的前端子应用。
在一个示例性实施例中,上述生成模块,还用于获取为前端子应用配置的标识信息,其中,所述标识信息用于唯一标识所述前端子应用;配置所述标识信息与组件的路由地址的对应关系,以获取前端子应用与路由地址的对应配置关系。
在一个示例性实施例中,上述生成模块,还用于获取为前端子应用配置的标识信息,至少包括以下之一:获取为所述前端子应用配置的应用注册表,其中,所述应用注册表中至少包括以下之一:前端子应用的应用信息及应用入口;获取为所述前端子应用添加的标识符,其中,所述标识符用于对前端子应用的对应功能进行标识。
在一个示例性实施例中,上述生成模块,还用于在确定所述主框架下的所述组件均加载完对应的所述前端子应用的情况下,将所述主框架与所述前端子应用进行打包,将打包结果作为所述目标应用。
在一个示例性实施例中,上述第二获取模块,还用于获取所述目标应用的目标类别;在所述目标容器中打开所述主框架的情况下,确定与所述目标类别对应的所述主框架中包含的目标组件,以及确定出与所述目标类别对应的路由系统;根据所述目标组件以及所述目标类别对应的路由系统确定出所述主框架中组件的路由地址。
在一个示例性实施例中,上述第二获取模块,还用于对所述主框架进行监听;在监听到所述主框架中存在任一组件的路由地址发生变化的情况下,卸载所述路由地址发生改变的组件所对应的前端子应用。
在一个示例性实施例中,上述第二获取模块,还用于获取所述主框架中每一个组件的路由地址,并根据所述每一个组件的路由地址从目标资源库中加载与所述每一个组件的路由地址一一对应的前端子应用。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,从预设资源包中获取待生成的目标应用的主框架;在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用,即通过本发明的技术方案,根据前端子应用的路由地址,在待生成的目标应用的主框架中实现对相关前端子应用的加载,采用上述技术方案,可以解决现有技术中,同一组件多次在不同的项目中重写,无法保证样式统一等问题,达到在生成目标应用时,使得组件的样式得到统一,提高了目标应用开发的灵活性,提升了开发效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种目标应用的生成方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的目标应用的生成方法的流程图;
图3是根据本发明可选实施例的微前端应用抽象的模块结构框图;
图4是根据本发明可选实施例的微前端应用在容器打开的示意图;
图5是根据本发明可选实施例的微前端应用的路由机制的流程示意图;
图6是根据本发明可选实施例的微前端拆分模式的示意图;
图7是根据本发明可选实施例的可拆分式微前端与传统微服务的构成示意图;
图8是根据本发明实施例的目标应用的生成装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在移动终端或者计算机终端类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种目标应用的生成方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的目标应用的生成方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及目标应用的生成,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述计算机终端的目标应用的生成方法,图2是根据本发明实施例的目标应用的生成方法的流程图,该流程包括如下步骤:
步骤S202,从预设资源包中获取待生成的目标应用的主框架;
可以理解的是,预设资源包是由前端开发人员提前在适合的开发环境下,通过编译平台根据目标应用的种类不同,生成的多种主框架的模板集合。
步骤S204,在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;
简而言之,由于主框架下同时可能存在多个组件,为了对组件之间进行区分,组件都有一个相应的路由地址。
步骤S206,根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
根据路由地址可以从目标资源库中加载与路由地址相对应的前端子应用,进而结合主框架完成目标应用的生成。
通过上述步骤,从预设资源包中获取待生成的目标应用的主框架;在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用,即通过本发明的技术方案,根据前端子应用的路由地址,在待生成的目标应用的主框架中实现对相关前端子应用的加载,采用上述技术方案,可以解决现有技术中,同一组件多次在不同的项目中重写,无法保证样式统一等问题,达到在生成目标应用时,使得组件的样式得到统一,提高了目标应用开发的灵活性,提升了开发效率。
在一个示例性实施例中,根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,包括:获取前端子应用与路由地址的对应配置关系,其中,所述对应配置关系保存在所述目标资源库中;在所述对应配置关系中,查找与所述组件的路由地址对应的前端子应用;从所述目标资源库中加载查找到的所述组件的路由地址对应的前端子应用。
也就是说,目标资源库中保存有多组包含路由地址和前端子应用的配置关系的信息,进而在获取到主框架中组建的路由地址后,可以根据从目标资源库中获取的配置关系以及主框架下每一个组件所对应的路由地址,判断出当前组件需要加载的前端子应用,并在目标资源库中进行查找。
在一个示例性实施例中,获取前端子应用与路由地址的对应配置关系,包括:获取为前端子应用配置的标识信息,其中,所述标识信息用于唯一标识所述前端子应用;配置所述标识信息与组件的路由地址的对应关系,以获取前端子应用与路由地址的对应配置关系。
简而言之,为了使前端子应用通过标识信息被很好地区分,每一个前端子应用均配置有一个唯一的标识,进一步的,为了提高子前端子应用在加载时的效率,根据前端子应用的标识信息为其配置对应的路由地址,从而根据路由地址便可以找到前端子应用。
在一个示例性实施例中,获取为前端子应用配置的标识信息,至少包括以下之一:获取为所述前端子应用配置的应用注册表,其中,所述应用注册表中至少包括以下之一:前端子应用的应用信息及应用入口;获取为所述前端子应用添加的标识符,其中,所述标识符用于对前端子应用的对应功能进行标识。
由于前端子应用也可以单独执行一些简单的操作模式,因此,为了更好的组合前端子应用,可以获取前端子应用的包含应用信息及应用入口的应用注册表,以及根据前端子应用的功能种类为前端子应用添加的标识符,进而可以精准的确认适合用于组成目标应用的前端子应用。
在一个示例性实施例中,根据所述前端子应用以及所述主框架生成所述目标应用,包括:在确定所述主框架下的所述组件均加载完对应的所述前端子应用的情况下,将所述主框架与所述前端子应用进行打包,将打包结果作为所述目标应用。
当确定从预设资源包中获取的待生成的目标应用的主框架中组件均根据路由地址完成前端子应用的加载后,将主框架与加载完成的前端子应用进行打包,以生成目标应用。
在一个示例性实施例中,在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址,包括:获取所述目标应用的目标类别;在所述目标容器中打开所述主框架的情况下,确定与所述目标类别对应的所述主框架中包含的目标组件,以及确定出与所述目标类别对应的路由系统;根据所述目标组件以及所述目标类别对应的路由系统确定出所述主框架中组件的路由地址。
由于目标应用的种类多种多样,在进行生成时根据从预设资源包中获取的主框架便可以判断出目标应用的目标类别,进而根据目标类别对主框架下的目标组件进行确认,此外,还可以根据目标类别确认出相应的路由系统,以便确认出主框架下每一个组件的路由地址。
在一个示例性实施例中,上述方法还包括;对所述主框架进行监听;在监听到所述主框架中存在任一组件的路由地址发生变化的情况下,卸载所述路由地址发生改变的组件所对应的前端子应用。
也就是说,通过主框架中的路由系统对主框架中的每一个组件的路由地址进行监听,当发现路由地址发生改变后,卸载通过该路由地址加载前端子应用,避免了同一前端子应用的重复加载。
在一个示例性实施例中,上述方法还包括:获取所述主框架中每一个组件的路由地址,并根据所述每一个组件的路由地址从目标资源库中加载与所述每一个组件的路由地址一一对应的前端子应用。
为了确保主框架下的路由地址均存在相应的前端子应用,在目标资源库中存在与组件的路由地址一一对应的前端子应用,在获取到主框架下组件的路由地址后,便可从目标资源库中加载相应的前端子应用,使得通过主框架生成目标应用时,组件的样式统一,便于升级更新,提高了目标应用开发的灵活性,提升了开发效率。
为了更好的理解上述目标应用的生成方法的过程,以下再结合可选实施例对上述目标应用的生成方法的流程进行说明。
为了更好的理解本发明可选实施例的技术方案,对部分术语以及设计理念进行说明,如下所示:
应用中心化:应用注册表。这个应用注册表拥有每个应用及对应的入口。在前端领域里,入口的直接表现形式可以是路由,又或者对应的应用映射。
标识化应用:需要一个标识符来标识不同的应用,以便于在安装、卸载的时候,能寻找到指定的应用。一个简单的模式,就是通过康威定律来命名应用。
应用生命周期管理:在软件设计周期内进行更新、维护。
高内聚,低耦合:软件工程的中的概念,是判断软件设计好坏的标准,主要用于程序的面向对象的设计。
基座模式:通过一个主应用,来管理其它应用,设计难度小,方便实践,但是通用度低。
自组织模式:应用之间是平等的,不存在相互管理的模式,设计难度大,不方便实施,但是通用度高。
本发明可选实施例中,主要提供了一种微前端应用的生成方法,可以使得APP打开容器后,打开一个类似基座的H5调度中心,不同的前端业务可以抽象为不同路由,然后由调度中心分配打开,其中,微前端应用(相当于目标应用)可抽象为如图3中的不同的模块组(相当于本发明实施例中的前端子应用):基础模块32、核心模块34、子业务应用36、扩展模块38,根据需求进行组合加载。
需要说明的是,目前APP场景为Native打开容器(相当于本发明实施例中的目标容器),如图4所示,H5项目在容器打开,并且H5为离线资源包,可以从运营平台部署资源包。
可选的,基础模块32,包括:1)rtw:根目录;2)public目录,其中,public目录下包含了部分跨模块集成测试的代码
可选的,核心模块34,包括:1)rtw-core/rtw-sdk/rtw-shared:暴露给子应用可用的通用基础类、模型定义、部分无界面独立模块等。rtw-core建议不放置界面相关,使用Jest UT方式进行功能验证;2)rtw-bootstrap:完整项目级别编译与启动入口,包含项目的运行时配置、依赖配置、消息总线、注册中心、核心模块加载机制等;3)rtw-host-app:提供界面基础容器,例如,可以使用应用标准的Layout,Menu等组件;提供Redux核心Store。
可选的,子业务应用36,包括:1)rtw-mobx-app:MobX示例应用,2)rtw-redux-app:Redux示例应用。
可选的,扩展模块38,包括:1)rtw-widgets:包含部分业务型控件,提供给所有的子应用使用,提取通用业务逻辑、对上屏蔽部分第三方依赖关系,类似于完整的OSS文件上传控件等;2)rtw-extensions:包含部分业务无关的通用型插件,类似于Chrome Extension的定位;3)rtw-worker:包含通用的Web Worker&WASM计算模块,此外,需要注意的是,子应用内也可以通过Buffer方式直接引入自定义的Worker。
例如,如果需要在子应用A中加载子应用B的实例时,可以使用类似于依赖注入的方式,从统一的注册中心中获取该实例对象,所有各个模块共享的基础库,都必须以UMD模式加载到全局;rtw-host-app中声明与使用需要展示哪些模块,rtw-bootstrap中注册可提供的UMD子模块。
可选的,路由机制如图5所示,主框架配置子应用的路由为subApp:{url:'/subApp/**',entry:'./subApp.js'},则当浏览器的地址为/subApp/abc时,框架需要先加载entry资源,待entry资源加载完毕,确保子应用的路由系统注册进主框架之后,再去由子应用的路由系统接管url change事件。同时在子应用路由切出时,主框架需要触发相应的destroy事件,子应用在监听到该事件时,调用自己的卸载方法卸载应用,如React场景下destroy=()=>ReactDOM.unmountAtNode(container)。通过这样一套机制,可以实现自己去劫持url change事件从而实现自己的路由系统,也可以基于已有的ui routerlibrary,尤其是react-router在v4之后实现了Dynamic Routing能力,在此基础上只需要复写一部分路由发现的逻辑即可。
可选的,常见的划分微前端的方式有:按照业务拆分、按照权限拆分、按照变更的频率拆分、按照组织结构拆分:利用康威定律来进一步拆分前端应用、跟随后端微服务划分。其中,按照组织结构拆分是利用康威定律来拆分前端应用。
例如,如图6所述,DDD与事件风暴是一种颇为有效的后端微前端拆分模式,对于前端来说,它也颇有有效,可直接跟踪后端服务,需要说明的是,每个项目都有自己特殊的背景,切分微前端的方式便不一样。即使项目的类型相似,也存在一些细微的差异。
可选的,可拆分式微前端可使用应用微化架构,应用微化架构是一种开发时整体,构建时拆分,运行时分离的前端架构模式,即应用微化架构从一份代码中,构建出适用于不同环境的多套目标代码。通过构建时拆分架构、代码删除架构、前端准备式架构实现微前端的可拆分。其中,代码删除架构是以删代码的方式来形成每个前端应用;微前端准备式架构是随时可以拆分为多个前端应用的架构模式。
如图7所示,由于它与微应用化的相似性,所以将它与微应用化做一个对比。它与微应用化不同的是,应用微化是在构建时对应用进行拆分,而非在本地模式下对应用拆分。相似的是,它也是基于构建系统的应用拆分方式。
综上,通过本发明可选实施例,引入基于可拆分式微前端之上进行目标应用的生成,从预设资源包中获取待生成的目标应用的主框架;在目标容器中打开主框架,以获取主框架中每一个组件的路由地址;根据每一个组件的路由地址从目标资源库中加载与每一个组件的路由地址一一对应的前端子应用,并根据前端子应用以及主框架生成目标应用,进而解决了以下问题:
(1)遗留系统迁移:解决遗留系统,每个单独的微型前端应用的源代码都将比单个整体前端应用的源代码少得多,这些较小的代码库对于开发人员来说更容易维护,尤其是避免了组件间耦合所导致的复杂性。
(2)聚合前端应用:微服务架构,可以解耦后端服务间依赖,而微前端,则关注于聚合前端应用。
(3)增量升级:技术债阻碍了项目的发展,只能重写,为了避免完全重写的风险,更希望逐个替换旧的模块。
(4)独立部署:就像微服务一样,微前端的独立部署能力是关键,部署范围的减小,带来了风险的降低,每个微前端应用都应具有自己的持续交付途径,不停地构建、测试、部署。
采用上述技术方案,可以解决现有技术中,同一组件多次在不同的项目中重写,无法保证样式统一等问题,达到在生成目标应用时,使得组件的样式得到统一,提高了目标应用开发的灵活性,提升了开发效率,利于推广。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种目标应用的生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明实施例的目标应用的生成装置的结构框图,应用于目标蓝牙设备,如图8所示,该装置包括:
(1)第一获取模块82,用于从预设资源包中获取待生成的目标应用的主框架;
(2)第二获取模块84,用于在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;
(3)生成模块86,用于根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
通过上述装置,从预设资源包中获取待生成的目标应用的主框架;在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用,即通过本发明的技术方案,根据前端子应用的路由地址,在待生成的目标应用的主框架中实现对相关前端子应用的加载,采用上述技术方案,可以解决现有技术中,同一组件多次在不同的项目中重写,无法保证样式统一等问题,达到在生成目标应用时,使得组件的样式得到统一,提高了目标应用开发的灵活性,提升了开发效率。
在一个示例性实施例中,上述生成模块,还用于获取前端子应用与路由地址的对应配置关系,其中,所述对应配置关系保存在所述目标资源库中;在所述对应配置关系中,查找与所述组件的路由地址对应的前端子应用;从所述目标资源库中加载查找到的所述组件的路由地址对应的前端子应用。
也就是说,目标资源库中保存有多组包含路由地址和前端子应用的配置关系的信息,进而在获取到主框架中组建的路由地址后,可以根据从目标资源库中获取的配置关系以及主框架下每一个组件所对应的路由地址,判断出当前组件需要加载的前端子应用,并在目标资源库中进行查找。
在一个示例性实施例中,上述生成模块,还用于获取为前端子应用配置的标识信息,其中,所述标识信息用于唯一标识所述前端子应用;配置所述标识信息与组件的路由地址的对应关系,以获取前端子应用与路由地址的对应配置关系。
简而言之,为了使前端子应用通过标识信息被很好地区分,每一个前端子应用均配置有一个唯一的标识,进一步的,为了提高子前端子应用在加载时的效率,根据前端子应用的标识信息为其配置对应的路由地址,从而根据路由地址便可以找到前端子应用。
在一个示例性实施例中,上述生成模块,还用于获取为前端子应用配置的标识信息,至少包括以下之一:获取为所述前端子应用配置的应用注册表,其中,所述应用注册表中至少包括以下之一:前端子应用的应用信息及应用入口;获取为所述前端子应用添加的标识符,其中,所述标识符用于对前端子应用的对应功能进行标识。
由于前端子应用也可以单独执行一些简单的操作模式,因此,为了更好的组合前端子应用,可以获取前端子应用的包含应用信息及应用入口的应用注册表,以及根据前端子应用的功能种类为前端子应用添加的标识符,进而可以精准的确认适合用于组成目标应用的前端子应用。
在一个示例性实施例中,上述生成模块,还用于在确定所述主框架下的所述组件均加载完对应的所述前端子应用的情况下,将所述主框架与所述前端子应用进行打包,将打包结果作为所述目标应用。
当确定从预设资源包中获取的待生成的目标应用的主框架中每一个组件均根据路由地址完成前端子应用的加载后,将主框架与加载完成的前端子应用进行打包,以生成目标应用。
在一个示例性实施例中,上述第二获取模块,还用于获取所述目标应用的目标类别;在所述目标容器中打开所述主框架的情况下,确定与所述目标类别对应的所述主框架中包含的目标组件,以及确定出与所述目标类别对应的路由系统;根据所述目标组件以及所述目标类别对应的路由系统确定出所述主框架中组件的路由地址。
由于目标应用的种类多种多样,在进行生成时根据从预设资源包中获取的主框架便可以判断出目标应用的目标类别,进而根据目标类别对主框架下的目标组件进行确认,此外,还可以根据目标类别确认出相应的路由系统,以便确认出主框架下每一个组件的路由地址。
在一个示例性实施例中,上述第二获取模块,还用于对所述主框架进行监听;在监听到所述主框架中存在任一组件的路由地址发生变化的情况下,卸载所述路由地址发生改变的组件所对应的前端子应用。
也就是说,通过主框架中的路由系统对主框架中的每一个组件的路由地址进行监听,当发现路由地址发生改变后,卸载通过该路由地址加载前端子应用,避免了同一前端子应用的重复加载。
在一个示例性实施例中,上述第二获取模块,还用于获取所述主框架中每一个组件的路由地址,并根据所述每一个组件的路由地址从目标资源库中加载与所述每一个组件的路由地址一一对应的前端子应用。
为了确保主框架下的路由地址均存在相应的前端子应用,在目标资源库中存在与组件的路由地址一一对应的前端子应用,在获取到主框架下组件的路由地址后,便可从目标资源库中加载相应的前端子应用,使得通过主框架生成目标应用时,组件的样式统一,便于升级更新,提高了目标应用开发的灵活性,提升了开发效率。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,从预设资源包中获取待生成的目标应用的主框架;
S2,在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;
S3,根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
在一个示例性实施例中,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
在一个示例性实施例中,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,从预设资源包中获取待生成的目标应用的主框架;
S2,在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;
S3,根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
在一个示例性实施例中,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,在一个示例性实施例中,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种目标应用的生成方法,其特征在于,包括:
从预设资源包中获取待生成的目标应用的主框架;
在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址;
根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
2.根据权利要求1所述的方法,其特征在于,根据所述组件的路由地址从目标资源库中加载与所述组件的路由地址对应的前端子应用,包括:
获取前端子应用与路由地址的对应配置关系,其中,所述对应配置关系保存在所述目标资源库中;
在所述对应配置关系中,查找与所述组件的路由地址对应的前端子应用;
从所述目标资源库中加载查找到的所述组件的路由地址对应的前端子应用。
3.根据权利要求2所述的方法,其特征在于,获取前端子应用与路由地址的对应配置关系,包括:
获取为前端子应用配置的标识信息,其中,所述标识信息用于唯一标识所述前端子应用;
配置所述标识信息与组件的路由地址的对应关系,以获取前端子应用与路由地址的对应配置关系。
4.根据权利要求3所述的方法,其特征在于,获取为前端子应用配置的标识信息,至少包括以下之一:
获取为所述前端子应用配置的应用注册表,其中,所述应用注册表中至少包括以下之一:前端子应用的应用信息及应用入口;
获取为所述前端子应用添加的标识符,其中,所述标识符用于对前端子应用的对应功能进行标识。
5.根据权利要求1所述的方法,其特征在于,根据所述前端子应用以及所述主框架生成所述目标应用,包括:
在确定所述主框架下的组件均加载完对应的所述前端子应用的情况下,将所述主框架与所述前端子应用进行打包,将打包结果作为所述目标应用。
6.根据权利要求1所述的方法,其特征在于,在目标容器中打开所述主框架,以获取所述主框架中组件的路由地址,包括:
获取所述目标应用的目标类别;
在所述目标容器中打开所述主框架的情况下,确定与所述目标类别对应的所述主框架中包含的目标组件,以及确定出与所述目标类别对应的路由系统;
根据所述目标组件以及所述目标类别对应的路由系统确定出所述主框架中组件的路由地址。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括;
对所述主框架进行监听;
在监听到所述主框架中存在任一组件的路由地址发生变化的情况下,卸载所述路由地址发生改变的组件所对应的前端子应用。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
获取所述主框架中每一个组件的路由地址,并根据所述每一个组件的路由地址从目标资源库中加载与所述每一个组件的路由地址一一对应的前端子应用。
9.一种目标应用的生成装置,其特征在于,包括:
第一获取模块,用于从预设资源包中获取待生成的目标应用的主框架;
第二获取模块,用于在目标容器中打开所述主框架,以获取所述主框架中每一个组件的路由地址;
生成模块,用于根据所述每一个组件的路由地址从目标资源库中加载与所述每一个组件的路由地址对应的前端子应用,并根据所述前端子应用以及所述主框架生成所述目标应用。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011111720.7A CN112217731B (zh) | 2020-10-16 | 2020-10-16 | 目标应用的生成方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011111720.7A CN112217731B (zh) | 2020-10-16 | 2020-10-16 | 目标应用的生成方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112217731A true CN112217731A (zh) | 2021-01-12 |
CN112217731B CN112217731B (zh) | 2022-08-05 |
Family
ID=74055548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011111720.7A Active CN112217731B (zh) | 2020-10-16 | 2020-10-16 | 目标应用的生成方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112217731B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691455A (zh) * | 2021-10-27 | 2021-11-23 | 深圳市信润富联数字科技有限公司 | 路由调度方法、装置、设备及可读存储介质 |
CN113835737A (zh) * | 2021-08-24 | 2021-12-24 | 交控科技股份有限公司 | 一种前端项目添加权限的方法及系统 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508665A (zh) * | 2011-11-10 | 2012-06-20 | 北京高森明晨信息科技有限公司 | 绘制应用程序视图的方法和装置 |
CN102523308A (zh) * | 2011-12-31 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种应用开发方法和运行该方法所开发应用的平台系统 |
US20150227302A1 (en) * | 2014-02-12 | 2015-08-13 | Bank Of America Corporation | Deploying multi-channel or device agnostic applications |
CN105446726A (zh) * | 2014-09-25 | 2016-03-30 | 腾讯科技(深圳)有限公司 | 生成网页的方法和装置 |
CN106293777A (zh) * | 2016-10-31 | 2017-01-04 | 山东鲁能软件技术有限公司 | 一种基于组件式开发前端界面控件实现方法 |
CN106528124A (zh) * | 2016-10-26 | 2017-03-22 | 广东广新信息产业股份有限公司 | 页面模板发布方法和系统 |
CN108170416A (zh) * | 2017-12-28 | 2018-06-15 | 北京云杉世纪网络科技有限公司 | 一种构建web前端的方法及系统 |
CN108170428A (zh) * | 2016-12-05 | 2018-06-15 | 阿里巴巴集团控股有限公司 | 页面搭建处理方法、装置及系统 |
CN108572813A (zh) * | 2018-03-24 | 2018-09-25 | 深圳市前海安测信息技术有限公司 | 组件式程序开发框架创建应用系统及方法 |
CN108664305A (zh) * | 2018-05-04 | 2018-10-16 | 平安科技(深圳)有限公司 | 实现页面功能复用的方法及装置 |
CN108874389A (zh) * | 2018-06-27 | 2018-11-23 | 中国建设银行股份有限公司 | 前端页面开发框架 |
CN109271142A (zh) * | 2018-07-24 | 2019-01-25 | 武汉空心科技有限公司 | 基于模板组件的开发云平台 |
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
US10353798B1 (en) * | 2017-07-05 | 2019-07-16 | Amazon Technologies, Inc. | Rapid development environment |
CN110400196A (zh) * | 2019-06-20 | 2019-11-01 | 北京奇艺世纪科技有限公司 | 一种页面处理方法、装置及计算机可读存储介质 |
CN111190586A (zh) * | 2019-12-16 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 软件开发框架的搭建及使用方法、计算设备和存储介质 |
CN111427552A (zh) * | 2020-02-27 | 2020-07-17 | 深圳壹账通智能科技有限公司 | 前端组件化开发方法、装置、计算机设备及存储介质 |
CN111767095A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 微服务生成方法、装置、终端设备及存储介质 |
-
2020
- 2020-10-16 CN CN202011111720.7A patent/CN112217731B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508665A (zh) * | 2011-11-10 | 2012-06-20 | 北京高森明晨信息科技有限公司 | 绘制应用程序视图的方法和装置 |
CN102523308A (zh) * | 2011-12-31 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种应用开发方法和运行该方法所开发应用的平台系统 |
US20150227302A1 (en) * | 2014-02-12 | 2015-08-13 | Bank Of America Corporation | Deploying multi-channel or device agnostic applications |
CN105446726A (zh) * | 2014-09-25 | 2016-03-30 | 腾讯科技(深圳)有限公司 | 生成网页的方法和装置 |
CN106528124A (zh) * | 2016-10-26 | 2017-03-22 | 广东广新信息产业股份有限公司 | 页面模板发布方法和系统 |
CN106293777A (zh) * | 2016-10-31 | 2017-01-04 | 山东鲁能软件技术有限公司 | 一种基于组件式开发前端界面控件实现方法 |
CN108170428A (zh) * | 2016-12-05 | 2018-06-15 | 阿里巴巴集团控股有限公司 | 页面搭建处理方法、装置及系统 |
US10353798B1 (en) * | 2017-07-05 | 2019-07-16 | Amazon Technologies, Inc. | Rapid development environment |
CN108170416A (zh) * | 2017-12-28 | 2018-06-15 | 北京云杉世纪网络科技有限公司 | 一种构建web前端的方法及系统 |
CN108572813A (zh) * | 2018-03-24 | 2018-09-25 | 深圳市前海安测信息技术有限公司 | 组件式程序开发框架创建应用系统及方法 |
CN108664305A (zh) * | 2018-05-04 | 2018-10-16 | 平安科技(深圳)有限公司 | 实现页面功能复用的方法及装置 |
CN108874389A (zh) * | 2018-06-27 | 2018-11-23 | 中国建设银行股份有限公司 | 前端页面开发框架 |
CN109271142A (zh) * | 2018-07-24 | 2019-01-25 | 武汉空心科技有限公司 | 基于模板组件的开发云平台 |
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN110400196A (zh) * | 2019-06-20 | 2019-11-01 | 北京奇艺世纪科技有限公司 | 一种页面处理方法、装置及计算机可读存储介质 |
CN111190586A (zh) * | 2019-12-16 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 软件开发框架的搭建及使用方法、计算设备和存储介质 |
CN111427552A (zh) * | 2020-02-27 | 2020-07-17 | 深圳壹账通智能科技有限公司 | 前端组件化开发方法、装置、计算机设备及存储介质 |
CN111767095A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 微服务生成方法、装置、终端设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
DAN LI,等: ""Support Formal Component-Based Development with UML Profile"", 《2013 22ND AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE》 * |
张清新: ""基于移动平台的微应用开发框架技术研究"", 《中国设备工程》 * |
胡如乐,等: ""基于微服务基础组件的前端开发技术应用研究"", 《电子测试》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835737A (zh) * | 2021-08-24 | 2021-12-24 | 交控科技股份有限公司 | 一种前端项目添加权限的方法及系统 |
CN113691455A (zh) * | 2021-10-27 | 2021-11-23 | 深圳市信润富联数字科技有限公司 | 路由调度方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112217731B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200272431A1 (en) | Software defined network controller | |
CN108763090B (zh) | 测试环境部署方法、装置、计算机设备和存储介质 | |
CN105657191B (zh) | 一种基于Android系统的应用增量升级方法及系统 | |
CN109933522B (zh) | 一种自动化用例的测试方法、测试系统及存储介质 | |
US6918108B2 (en) | System and method for field diagnosis of wireless communications device system software | |
CN110187912B (zh) | 一种节点选择方法和装置 | |
CN112217731B (zh) | 目标应用的生成方法及装置、存储介质 | |
CN104750528B (zh) | 一种Android程序中的组件管理方法和装置 | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
CN105516154B (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN111880987A (zh) | 应用程序的动态监测方法、装置、存储介质以及电子装置 | |
CN112769706B (zh) | 组件化路由方法及系统 | |
CN109766278A (zh) | 基于osgi框架的网关设备web后台自动测试方法 | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
CN112596746A (zh) | 应用安装包生成方法、装置、计算机设备和存储介质 | |
CN115794214A (zh) | 应用模块元数据管理方法、设备、存储介质及装置 | |
CN111176652A (zh) | 应用程序管理的方法、装置、设备和介质 | |
CN115878443A (zh) | 接口测试脚本的生成方法及装置、存储介质及电子装置 | |
CN111538606B (zh) | 一种测试模拟Dubbo接口的方法、装置及设备 | |
CN110968507B (zh) | 覆盖率统计方法及装置 | |
CN114860204A (zh) | 程序处理、运行方法、装置、终端、智能卡及存储介质 | |
CN109508193B (zh) | 一种应用部署运行方法、装置、终端设备和介质 | |
CN114090145A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |