掌桥专利:专业的专利平台
掌桥专利
首页

一种后端源码生成方法、装置、设备及存储介质

文献发布时间:2023-06-19 19:38:38


一种后端源码生成方法、装置、设备及存储介质

技术领域

本发明涉及软件开发领域,特别涉及一种后端源码生成方法、装置、设备及存储介质。

背景技术

目前低代码开发平台已经流行,用户无需编码或通过少量代码就可以快速根据自己的业务定制自己的低代码开发环境并生成应用程序。在某些情况下,客户需要个性化定制,原本的平台无法满足需求,同时又希望能够快速开发,这就需要低代码开发平台拥有支持客户二次开发的能力,需要低代码平台能够拥有前后端出码的能力。客户只需要将低代码平台出码的文件拷入自己搭建的工程,就可以进行初步的组件可视化渲染并拥有对表单的CRUD(增删改查)能力。目前市面上的低代码平台大多是前后端分离框架结构,前端开发技术有VUE、React等,出码技术也比较丰富,其中比较代表性的有阿里的Lowcode-Engine。后端开发大多采用Java技术进行开发,但在后台服务出码方面尚没有完善的技术体系。

发明内容

有鉴于此,本发明的目的在于提供一种后端源码生成方法、装置、设备及存储介质,能够实现快速有效的出码。其具体方案如下:

第一方面,本申请公开了一种后端源码生成方法,应用于低代码开发平台,包括:

基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表;所述目标数据表包括初始表单数据表、权限信息表以及流程数据表;

选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,并基于机器学习确定所述若干张表单数据表之间的关联关系;

利用预设模板技术基于所述若干张表单数据表以及所述关联关系构建相应的模板文件;

根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码。

可选的,所述基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表,包括:

基于所述用户需求在低代码平台设计态设计所述初始表单并配置所述初始表单相应的权限以及流程引擎,并将设计完成的所述初始表单发布至运行态,以在所述运行态的所述后台数据库中生成对应的目标数据表。

可选的,所述选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,包括:

通过Web界面或直接从所述后台数据库中选择所述待进行二次开发的应用以及位于所述目标数据表中的所述若干张表单数据表。

可选的,所述基于机器学习确定所述若干张表单数据表之间的关联关系,包括:

基于所述机器学习的关联规则算法通过逐层搜索的迭代方法获取所述数据库中项集的关系,以根据所述项集的关系确定所述若干张表单数据表之间的所述关联关系;其中,每个所述项集中包含若干项,所述数据表中的一个字段为一个项。

可选的,所述根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码,包括:

利用代码生成器根据所述若干张表单数据表和所述模板文件生成二次开发需要的所述后端源码;所述后端源码包括负责数据处理的Java文件、用于进行物化处理的结构化查询语言文件、数据表Mapper文件以及配置文件。

可选的,所述根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码之后,还包括:

基于所述结构化查询语言文件,将所述二次开发需要的数据库表在客户端进行物化处理,以存储所述二次开发运行所需数据;所述数据库表包括若干张表单、权限、引擎以及系统配置。

可选的,所述根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码之后,还包括:

在客户端搭建SpringBoot工程,将所述配置文件以及所述后端源码导入至所述SpringBoot工程来实现编译运行。

第二方面,本申请公开了一种后端源码生成装置,应用于低代码开发平台,包括:

数据表生成模块,用于基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表;所述目标数据表包括初始表单数据表、权限信息表以及流程数据表;

关系确定模块,用于选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,并基于机器学习确定所述若干张表单数据表之间的关联关系;所述数据表包括所述若干张表单数据表;

模板文件构建模块,用于利用预设模板技术基于所述若干张表单数据表以及所述关联关系构建相应的模板文件;

源码生成模块,用于根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序以实现前述的后端源码生成方法。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的后端源码生成方法。

由上可知,本申请在进行后端源码生成时,首先基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表;所述目标数据表包括初始表单数据表、权限信息表以及流程数据表;选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,并基于机器学习确定所述若干张表单数据表之间的关联关系;利用预设模板技术基于所述若干张表单数据表以及所述关联关系构建相应的模板文件;根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码。可见,本申请采用低代码平台开发,实现系统的后端出码,可以用于快速的二次开发扩展功能,降低了开发成本和开发周期。同时,该系统采用了基于机器学习的规则算法,快速有效分析输入数据表的关系,提高了模板生成的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种后端源码生成方法流程图;

图2为本申请公开的一种数据集示意图;

图3为本申请公开的一种低代码开发平台关联关系表示意图;

图4为本申请公开的一种低代码开发平台输出频繁项示意图;

图5为本申请公开的一种后端源码生成方法流程图;

图6为本申请公开的一种后端源码生成装置示意图;

图7为本申请公开的一种电子设备结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前市面上的低代码平台大多是前后端分离框架结构,前端开发技术有VUE、React等,出码技术也比较丰富,其中比较代表性的有阿里的Lowcode-Engine。后端开发大多采用Java技术进行开发,但在后台服务出码方面尚没有完善的技术体系。为解决上述技术问题,本申请提供了一种后端源码生成方法,能够实现有效生成二次开发的后端源码直接用于开发。

参见图1所示,本发明实施例公开了一种后端源码生成方法,应用于低代码开发平台,包括:

步骤S11、基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表;所述目标数据表包括初始表单数据表、权限信息表以及流程数据表。

本实施例中,基于所述用户需求在低代码平台设计态设计所述初始表单并配置所述初始表单相应的权限以及流程引擎,并将设计完成的所述初始表单发布至运行态,以在所述运行态的所述后台数据库中生成对应的目标数据表。即针对客户需求,在低代码平台设计态进行表单的设计并且可以根据需要进一步配置权限控制和流程引擎。在设计态完成设计并发布到运行态之后,会在运行态的后台数据库中生成对应数据表其中包括表单数据表和相应的权限信息表, 流程数据表。

步骤S12、选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,并基于机器学习确定所述若干张表单数据表之间的关联关系。

本实施例中,通过Web界面或直接从所述后台数据库中选择所述待进行二次开发的应用以及位于所述目标数据表中的所述若干张表单数据表。并基于所述机器学习的关联规则算法通过逐层搜索的迭代方法获取所述数据库中项集的关系,以根据所述项集的关系确定所述若干张表单数据表之间的所述关联关系;其中,每个所述项集中包含若干项,所述数据表中的一个字段为一个项。就是通过Web界面或者直接从数据库选择客户需要进行二次开发的应用及多张表单a,b,c,d。将a,b,c,d这多张数据表作为输入,依据机器学习的关联规则算法,通过逐层搜索的迭代方法找出数据库中项集的关系,以形成规则,从而梳理出多张数据表之间的关联关系,其中包括但不限于以下关系:父子依赖关系和共同被使用的子组件。

目前机器学习的关联规则算法最常用的是Apriori(挖掘关联规则的频繁项集算法)算法和FP-growth(Frequent Pattern,频繁模式增长)算法。前者多次扫描数据库,每次利用候选频繁集产生频繁集;后者则利用树形结构直接得到频繁集,减少了扫描数据库的次数,从而提高了算法的效率。在本低代码开发中使用Apriori算法,首先需要构造数据集如图2所示。其中对应的每个数据表定义为一个事务,数据表中的每个字段称为一个项,包含零个或多个项的集合叫做项集,例如{ id1,input1,address1,radio1,parentid1}, 包含k个项的项集叫做k-项集,例如{ id1,input1,address1,radio1,parentid1}叫做1-项集,{ id3,parentid1,checkbox3}叫做3-项集。对于规则的前件和后件,{parentid}叫前件,{input}等叫后件。进而通过支持度,置信度和提升度进行指标分析。这里,c事务的id3值等于a事务和b事务的parentid。支持度是数据集中包含该项集的记录所占的比例,表示同时包含a和b的事务占所有事务的比例;可信度是针对一条关联规则来定义的,表示使用包含a的事务中同时包含b事务的比例,即同时包含a和b的事务占包含a事务的比例。低代码开发平台关联关系表设计如图3所示,图中,IMPLIES代表从左侧到右侧具有相关性。提升度表示“包含a的事务中同时包含b事务的比例”与“包含b事务的比例”的比值。在多表大数据量的情况下,通过python脚本,直接调用相关库文件,通过置信度调用,输出频繁项父类和共同组件如图4所示。可知,本申请采用了基于机器学习的规则算法,快速有效分析输入数据表的关系,提高了模板生成的准确性。尤其在需要进行二次开发的输入表单数据量庞大的情况下,这种优势更加明显。

步骤S13、利用预设模板技术基于所述若干张表单数据表以及所述关联关系构建相应的模板文件。

本实施例中,将多张数据表和它们之间的关联关系作为输入,根据velocity模板技术,构建相应的模板文件。表单采用统一的CURD模板文件。对于父类和共同组件类,创建单独的模板。

步骤S14、根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码。

本实施例中,利用代码生成器根据所述若干张表单数据表和所述模板文件生成二次开发需要的所述后端源码;所述后端源码包括负责数据处理的Java文件、用于进行物化处理的结构化查询语言文件、数据表Mapper文件以及配置文件。即使用code generator(代码生成器)生成二次开发需要的源码,其中包括负责CRUD的Java文件,需要物化的SQL(Structured Query Language,结构化查询语言)文件,数据表Mapper文件以及配置文件pom.xml, bootstrap.yml等。在配置文件pom.xml中,添加SpringBoot和Sprin gCloud相关依赖,用以支持微服务,这样二次开发需要的源文件就绪。根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码之后,还包括:基于所述结构化查询语言文件,将所述二次开发需要的数据库表在客户端进行物化处理,以存储所述二次开发运行所需数据;所述数据库表包括若干张表单、权限、引擎以及系统配置。就是说接下来需要搭建二次开发的工程,根据客户部署的不同规模需求选择不同的服务器。在一种具体的实施例中,如果仅是支持千人以下用户并发访问,可以部署16c32G 内存500G硬盘,在此服务器上安装操作系统,选用centos7.6或以上。继而做好环境初始化,配置好防火墙等网络之后,安装JDK和基础组件如数据库mariadb,微服务配置中心nacos,redis数据库缓存和前端nginx web服务器。这样二次开发的服务器端搭建完毕,将code generator生成的SQL文件在服务器端的数据库导入,二次开发需要的数据库表(包括表单,权限,引擎,系统配置等)在数据库中进行物化,用于存储二次运行需要的数据。

所述根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码之后,还包括:在客户端搭建SpringBoot工程,将所述配置文件以及所述后端源码导入至所述SpringBoot工程来实现编译运行。即最后在二次开发的客户端新建SpringBoot工程,拷入配置文件pom.xml 和 bootstrap.yml,并且code generator已经根据配置文件要求生成了所有源码文件。拷入二次开发工程之后,在客户端工程里面直接编译运行实现开箱即用,进而进行更加快速的二次开发。

由上可知,本申请在进行后端源码生成时,首先基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表;所述目标数据表包括初始表单数据表、权限信息表以及流程数据表;选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,并基于机器学习确定所述若干张表单数据表之间的关联关系;利用预设模板技术基于所述若干张表单数据表以及所述关联关系构建相应的模板文件;根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码。可见,本申请采用低代码平台开发,实现系统的后端出码,可以用于快速的二次开发扩展功能,降低了开发成本和开发周期。同时,该系统采用了基于机器学习的规则算法,快速有效分析输入数据表的关系,提高了模板生成的准确性。

参见图5所示,本申请公开了一种后端源码生成方法,应用于低代码开发平台,包括:

本实施例中,针对目前存在的低代码平台后端出码问题,本申请提供了一种有效的出码能力,通过本申请开发人员可以快速有效出码。本申请主要的步骤为:首先,针对客户需求,在低代码平台设计态进行表单的设计。如有需要,可以进一步配置权限和流程引擎。在设计态完成设计并发布到运行态之后,会在运行态的后台数据库中生成对应数据表其中包括表单数据表和相应的权限信息表, 流程数据表。之后选择客户需要进行二次开发的应用及多张表单。将运行态产生的多张数据表作为输入,依据机器学习的关联规则算法,通过逐层搜索的迭代方法找出数据库中项集的关系,以形成规则,从而梳理出多张数据表之间的关联关系,其中包括但不限于以下关系:包括父子依赖关系;共同被使用的子组件。然后将多张数据表和它们之间的关联关系作为输入,根据velocity/freeMaker 模板技术,构建相应的模板文件。再使用code generator 生成二次开发需要的源码,其中包括负责CURD 的Java文件, 需要物化的SQL文件, 数据表Mapper文件以及配置文件等。并依据生成的SQL文件,将二次开发需要的数据库表(包括表单,权限,引擎,系统配置等)在客户端进行物化。最终搭建客户工程,并将code generator生成的源码文件导入,编译运行实现开箱即用,进而进行更加快速的二次开发。

也就是说,本申请根据用户需求设计初始表单并配置表单相应的权限和流程引擎,然后提取相应的运行态表单数据库表作为数据输入,使用基于机器学习规则算法识别出输入数据表之间的关系,然后根据这些关系在模板模块更加快色的生成相应的模板文件,在出码模块根据数据库表单数据 和模板文件生成二次开发需要的后端源码,物化二次开发需要使用的数据库表,最后结合前端出码 生成的文件,一起导入客户工程进行有效的个性化定制的二次开发。

由上可知,本申请采用低代码平台开发,实现系统的后端出码,可以用于快速的二次开发扩展功能,降低了开发成本和开发周期。同时,该系统采用了基于机器学习的规则算法,快速有效分析输入数据表的关系,提高了模板生成的准确性。尤其在需要进行二次开发的输入表单数据量庞大的情况下,这种优势更加明显。

参见图6所示,本发明实施例公开了一种后端源码生成装置,应用于低代码开发平台,包括:

数据表生成模块11,用于基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表;所述目标数据表包括初始表单数据表、权限信息表以及流程数据表;

关系确定模块12,用于选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,并基于机器学习确定所述若干张表单数据表之间的关联关系;所述数据表包括所述若干张表单数据表;

模板文件构建模块13,用于利用预设模板技术基于所述若干张表单数据表以及所述关联关系构建相应的模板文件;

源码生成模块14,用于根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码。

由上可知,本申请在进行后端源码生成时,首先基于用户需求设计初始表单并配置所述初始表单相应的权限以及流程引擎,以在后台数据库中生成对应的目标数据表;所述目标数据表包括初始表单数据表、权限信息表以及流程数据表;选择待进行二次开发的应用以及位于所述目标数据表中的若干张表单数据表,并基于机器学习确定所述若干张表单数据表之间的关联关系;利用预设模板技术基于所述若干张表单数据表以及所述关联关系构建相应的模板文件;根据所述若干张表单数据表和所述模板文件生成二次开发需要的后端源码。可见,本申请采用低代码平台开发,实现系统的后端出码,可以用于快速的二次开发扩展功能,降低了开发成本和开发周期。同时,该系统采用了基于机器学习的规则算法,快速有效分析输入数据表的关系,提高了模板生成的准确性。

在一些具体的实施例中,所述数据表生成模块11,具体可以包括:

目标数据表生成单元,用于基于所述用户需求在低代码平台设计态设计所述初始表单并配置所述初始表单相应的权限以及流程引擎,并将设计完成的所述初始表单发布至运行态,以在所述运行态的所述后台数据库中生成对应的目标数据表。

在一些具体的实施例中,所述关系确定模块12,具体可以包括:

数据表选择单元,用于通过Web界面或直接从所述后台数据库中选择所述待进行二次开发的应用以及位于所述目标数据表中的所述若干张表单数据表。

在一些具体的实施例中,所述关系确定模块12,具体可以包括:

关系确定单元,用于基于所述机器学习的关联规则算法通过逐层搜索的迭代方法获取所述数据库中项集的关系,以根据所述项集的关系确定所述若干张表单数据表之间的所述关联关系;其中,每个所述项集中包含若干项,所述数据表中的一个字段为一个项。

在一些具体的实施例中,所述源码生成模块14,具体可以包括:

源码生成单元,用于利用代码生成器根据所述若干张表单数据表和所述模板文件生成二次开发需要的所述后端源码;所述后端源码包括负责数据处理的Java文件、用于进行物化处理的结构化查询语言文件、数据表Mapper文件以及配置文件。

在一些具体的实施例中,所述源码生成模块14,还可以包括:

物化处理单元,用于基于所述结构化查询语言文件,将所述二次开发需要的数据库表在客户端进行物化处理,以存储所述二次开发运行所需数据;所述数据库表包括若干张表单、权限、引擎以及系统配置。

在一些具体的实施例中,所述源码生成模块14,还可以包括:

工程搭建单元,用于在客户端搭建SpringBoot工程,将所述配置文件以及所述后端源码导入至所述SpringBoot工程来实现编译运行。

进一步的,本申请实施例还公开了一种电子设备,图7是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。

图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备 20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的后端源码生成方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵 循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进 行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、 磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222 等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算 机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的后端源码生成方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。

进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的后端源码生成方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种后端存储设备的管理方法、装置、设备以及存储介质
  • 一种APP的自动生成方法、装置、终端设备及可读存储介质
  • 一种三维水电预埋图的生成方法、装置、设备及存储介质
  • 一种图像生成方法、装置、设备和存储介质
  • 一种区块链ID生成及使用方法、装置、电子设备以及存储介质
  • 用于生成LVGL界面源码的方法及装置、电子设备、存储介质
  • 源码文件生成方法、装置、电子设备和存储介质
技术分类

06120115986643