CN112558946B - 一种生成代码的方法、装置、设备和计算机可读存储介质 - Google Patents

一种生成代码的方法、装置、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN112558946B
CN112558946B CN202011498916.6A CN202011498916A CN112558946B CN 112558946 B CN112558946 B CN 112558946B CN 202011498916 A CN202011498916 A CN 202011498916A CN 112558946 B CN112558946 B CN 112558946B
Authority
CN
China
Prior art keywords
template
file
generating
target
code
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
CN202011498916.6A
Other languages
English (en)
Other versions
CN112558946A (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.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life 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 Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN202011498916.6A priority Critical patent/CN112558946B/zh
Publication of CN112558946A publication Critical patent/CN112558946A/zh
Application granted granted Critical
Publication of CN112558946B publication Critical patent/CN112558946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本申请实施例属于研发管理领域,涉及一种生成代码的方法,包括:响应新建模板文件的指令,确定用户设置的模板信息,所述模板信息包括方法的类型,返回参数类型,参数个数和参数名称;为所述模板文件设置对应的类的名称;根据所述模板信息和所述类的名称生成基础类库文件;在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个所述基础类库文件中继承的目标模板;根据所述配置信息和所述目标模板,生成目标代码文件。本申请还提供一种生成代码的装置、计算机设备及存储介质。此外,本申请还涉及区块链技术,基础类库文件可存储于区块链中。

Description

一种生成代码的方法、装置、设备和计算机可读存储介质
技术领域
本申请涉及研发管理领域,尤其涉及一种生成代码的方法、装置、设备和计算机可读存储介质。
背景技术
计算机应用往往包含有多个逻辑模块和多种操作流程,不同的逻辑模块和操作流程对应不同的实体代码模块,用于实现不同的功能。例如,对一些账号登录系统而言,可以包括账号信息检测模块,用于对账号的密码进行校验;安全设备校验模块,用于检测当前登录设备是否为许可设备;安全地检验模块,用于检测当前账号登录地是否为常用登录地。
计算机应用包含多个代码模块,可以实现更多功能,在进行开发时,由于没有自动化代码生成工具,而需要每个模块都重新开发。即使操作流程类似,具体不同业务的模块也需要重新开发,耗费大量时间。尤其是当前快节奏的应用开发和迭代环境下,如何实现计算机应用的快速开发,是目前尚待解决的技术问题。
发明内容
本申请实施例的目的在于提出一种生成代码的方法、装置、计算机设备及存储介质,用于解决现有技术中代码开发时效率低下的技术问题。
为了解决上述技术问题,本申请实施例提供一种生成代码的方法,采用了如下该的技术方案:
响应新建模板文件的指令,确定用户设置的模板信息,该模板信息包括方法的类型,返回参数类型,参数个数和参数名称;
为该模板文件设置对应的类的名称;
根据该模板信息和该类的名称生成基础类库文件;
在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个该基础类库文件中继承的目标模板;
根据该配置信息和该目标模板,生成目标代码文件。
为了解决上述技术问题,本申请实施例还提供一种生成代码的装置,采用了如下该的技术方案:
响应单元,用于响应新建模板文件的指令,确定用户设置的模板信息,该模板信息包括方法的类型,返回参数类型,参数个数和参数名称;
设置单元,用于为该模板文件设置对应的类的名称;
第一生成单元,用于根据该模板信息和该类的名称生成基础类库文件;
监听单元,用于在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个该基础类库文件中继承的目标模板;
第二生成单元,用于根据该配置信息和该目标模板,生成目标代码文件。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的生成代码的方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的生成代码的方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例中,由于在生成后端代码时,在配置后端配置信息后,只需要选择基础类库中的目标模板,进而就可以根据该目标模板和相关的配置信息生成目标后端代码文件。由于是采用模板辅助的方式来进行代码开发,而不同的模板用于实现不同的流程或者功能,因此通过采用模板辅助开发时,可以实现相同功能的代码模板的代码复用,从而提高了后端代码的开发效率。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请的生成代码的方法的一个实施例的流程图;
图2为根据本申请的生成代码的方法的又一个实施例的流程图;
图3为根据本申请的生成代码的方法的又一个实施例的流程图;
图4为根据本申请的生成代码的装置的一个实施例示意图;
图5为根据本申请的生成代码的装置的又一个实施例示意图;
图6为根据本申请的生成代码的装置的又一个实施例示意图;
图7是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,根据实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相根据。
基于前述所描述的现有在进行应用开发时存在的问题,本提案中提出了自动生成前端和后端代码的方法,该方法主要通过预先将类似的方法或流程所对应的代码模块,设置成基础类库中的模板。后续在进行应用开发时,相同或者类似的方法或流程可以继承基础类库中对应的对应模板进行开发,避免了开发人员重复劳动,从而提高了应用开发效率。
其中,以JAVA开发环境为例,如果不抽象成基础类库,那么需要在每个业务的java类中都需要进行校验,并且大部分代码逻辑都一样,只是参数不一样,这样的话会带来重复劳动,并且如果一旦这个校验逻辑后期发生变化,需要每个java类都需要跟着调整,不利于项目维护。因此,可以将类似功能的代码模块抽象成一个基础类库,然后在后续开发相同或者相似流程时,每个业务的java类都继承原先设置对应的基础类库,只是参数传值变化就可以,进而提高开发效率。
为了使本技术领域的人员更好地理解本申请方案,下面将根据附图,对本申请实施例中的技术方案进行清楚、完整地描述。
具体参考图1,示出了根据本申请的一种生成代码的方法的一个实施例的流程图。所述的生成后端代码的方法,包括以下步骤:
步骤S101,响应新建模板文件的指令,确定用户设置的模板信息,所述模板信息包括方法的类型,返回参数类型,参数个数和参数名称。
本申请实施例所述的生成代码的方法可以运行在任一配置有相应代码运行环境的电子设备中,例如可以包括个人计算机、服务器或者智能终端,具体电子设备的形态此处不做限定。
进一步的,电子设备可以通过输入设备响应用户输入的新建模板文件的指令。其中,可以采用a.ctl文件作为模板文件的格式,但需要说明的是,此处仅为举例说明,实际中还可以设置其他类型,例如,还可以是a.ftl文件,具体此处不做限定。在创建模板文件后,还需要手工设置模板需要生成的具体的方法类型,返回参数类型,参数个数和参数名称等配置信息,参数名称因为是通用的参数,这里可以定义为类似param1,param2,param3等名称。
步骤S102,为所述模板文件设置对应的类的名称。
本实施例中,可以一个生成后端java代码的界面,在该界面上用户可以为前述创建的模板文件设置需要生成的java类的名称,比如名称为getStaffInfo。除此之外,还可以设置生成完这个模板文件后,具体存放的位置,是否需要自动完成编译,该类是否需要支持高并发场景等设置。
步骤S103,根据所述模板信息和所述类的名称生成基础类库文件。
本实施例中,在确定模板信息和类的名称后,可以通过将模板参数和类的名称进行拼接的方式,生成JAVA类基础类库文件。
其中,拼接的示例以具体查询某个职员为例,示例如下:
Public List<Map<String,String>> getStaffInfo(param1,param2,param3){
//todo
}
其中,Public为模板的方法类型;List<Map<String,String>>为模板中设置的返回参数类型;getStaffInfo为Java类的名称。
在一些可能的实施例中,上述在生成基础类库文件,例如aa.java后,如果还设置了需要编译生成的文件,那么就会对aa.java文件进行编译,编译好的文件可以在工具直接看出是否有问题,如果生成的文件有问题,还需要调整a.ctl模板或文件名称。
在一些可能的实现方式中,在上述步骤S101和步骤S102之间,该生成代码的方法还可以包括:根据所述模板信息为所述模板文件配置增删改查模板。具体的,可以设置一键生成增删改查方法的工具,在上述获取到模板信息后,可以通过该工具,利用模板信息,在模板文件a.ctl文件配置增上改查4个最基础的模板。
需要强调的是,为进一步保证上述基础类库文件的私密和安全性,上述基础类库文件还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
步骤S104,在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个所述基础类库文件中继承的目标模板。
本实施例中,可以配置一个交互界面,在该交互界面上,可以监听用户的设置操作,确定用户为待生成的代码文件设置的配置信息,以及设置继承的基础类库中的目标模板。其中,设置继承的操作可以示例:假设业务类文件cc.java需要继承目标模板aa.java,则在cc.ctl模板中还需要配置一个继承extends属性,这样自动生成代码工具就可以按照cc.ctl模板配置的值来自己加上继承这个关键字了。
其中,目标模板可以举例:例如,目标模板中可以包括根据用户所在地理位置的权限校验模块,假设系统机构有北京机构,上海机构,广州机构,当前用户所在的机构为北京机构,按照业务权限划分北京机构的用户不能访问到上海机构的数据。所以系统需要在每次发生请求前,都需要对请求的参数和当前用户的机构权限进行校验,是否有权限可以查看数据,如果有权限,那么鉴权通过,如果没有,则鉴权失败。若需要生成的代码中,需要实现基于用户所在地理位置的权限校验模块,则可以从该基础类库中选择该权限检验模板。
步骤S105,根据所述配置信息和所述目标模板,生成目标代码文件。
本实施例中,在确定配置信息和目标模板后,可以利用配置信息和目标模板生成目标代码文件。其中,目标代码文件可以是前端或者后端代码文件。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例中,可以通过创建基础类库文件的形式,在不同基础类库文件中设置实现不同的方法,即对应实现不同的功能。从而,在后续开发时,可以设置直接继承基础类库,实现相同流程或者功能模块的代码复用,避免了开发人员重复编写,从而提高了代码开发的效率。
在一些可能的实现方式中,上述生成的基础类库文件可以分为前端和后端两种,即目标模板可以包括目标后端模板,下面具体参照图2,为本申请实施例中一种生成代码的方法的又一个实施例示意图,可以包括:
S201,响应新建模板文件的指令,确定用户设置的模板信息,所述模板信息包括方法的类型,返回参数类型,参数个数和参数名称。
S202,为所述模板文件设置对应的类的名称。
S203,根据所述模板信息和所述类的名称生成基础类库文件。
其中,步骤S201-S203与图1中步骤S101-S103类似,此处不再赘述。
S204,在预设的第一交互界面上,监听用户的输入或者选择操作,确定用户配置的后端配置信息,以及确定从预设的基础类库中继承的目标后端模板。
本实施例中,可以预先设置第一交互界面,从而响应用户在该第一交互界面上设置的数据源、数据表和实体名称等后端配置信息,以及用户选择继承的目标后端模板,例如,可以用下拉框的形式来提示用户选择合适的模板。其中,数据源是指数据库应用程序所使用的数据库或者数据库服务器。数据表是由表名、表中的字段和表的记录三个部分组成的。设计数据表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名、字段类型、及宽度,并将这些数据输入到计算机当中。
S205,根据所述后端配置信息和所述目标后端模板生成目标后端代码文件。
本实施例中,目标后端代码文件可以为JAVA语言的代码形式,JAVA可以为三层架构(3-tier architecture)的形式:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。目标后端代码文件可以包括service层,即业务逻辑层相关文件,和dao层,即数据访问层相关文件,以及其他相关文件。
具体的,上述步骤中,首先可以读取配置的数据表中的字段值,进而根据字段值和目标模板生成实体类文件。
进一步的,再根据目标模板和数据源生成dao层接口文件和XML文件。其中,若目标模板中含有增删改查模板,则生成的dao层接口文件中默认带有增删改查基础方法,生成的xml文件中的配置与接口文件中的方法名称可以保持一致,默认生成增删改查语句。
最后,再可以根据目标模板生成service层文件。其中,在生成service层文件后,该文件可以自动注入dao层的实例,同时生成的增删改查方法也可以按照默认的格式生成,例如查询方法,默认返回配置表的list<T>格式,至于具体业务逻辑则可以由开发人员根据实际情况来填充。
在一些可能的实现方式中,在步骤S205中生成目标后端代码文件之前,还可以包括:对所述后端配置信息中的数据源进行连接数据库测试,若数据库连接测试失败,则中止生成所述目标后端代码文件。其中,对数据源进行连接测试,主要用于检测数据库是否连接正确,在向待使用的数据库进行读写数据表对应的数据时,是否通畅。因此,若连接成功,则可以继续执行目标后端代码文件的生成过程,否则,则中止生成过程,待数据库连接测试成功时,再继续进行生成过程。
在一些可能的实现方式中,在步骤S205之后,该生成后端代码的方法还可以包括:保存所述目标后端代码文件和所述目标模板之间的对应关系;在检测到所述目标模板更新时,确定所述对应关系中,所述目标模板对应的所述目标后端代码文件,并生成对所述目标后端代码文件的升级提示信息。
具体的,在生成目标后端代码文件后,可以保存目标后端代码文件和目标模板的对应关系,例如可以保存目标后端代码文件相关文件的文件标识,和目标模板的标识之间的对应关系。之后,在对基础类库进行更新时,若对目标模板进行了更新,可以在更新完毕后,根据前述保存的对应关系,确定利用了目标模板的目标后端代码文件,进而可以生成升级提示信息,指示用户利用更新后的目标模板对目标后端代码文件进行更新。具体在响应用户的更新指令后,可以自动检测原目标后端代码文件的相关的配置参数,之后,结合更新后的目标模板,生成新的目标后端代码文件,并对原目标后端代码文件的文件进行替换更新操作。由于上述是采用了结合目标模板的形式进行后端代码开发,因此在进行后端代码更新时,可以及时通过预先保存的对应关系,确定需要更新的后端代码,实现对后端代码的快速更新。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例中,由于在生成后端代码时,在配置后端配置信息后,只需要选择基础类库中的目标模板,进而就可以根据该目标模板和相关的配置信息生成目标后端代码文件。由于是采用模板辅助的方式来进行代码开发,而不同的模板用于实现不同的流程或者功能,因此通过采用模板辅助开发时,可以实现相同功能的代码模板的代码复用,从而提高了后端代码的开发效率。
在一些可能的实现方式中,下面具体参照图3,为本申请实施例中一种生成代码的方法的又一个实施例示意图,可以包括:
S301,响应新建模板文件的指令,确定用户设置的模板信息,所述模板信息包括方法的类型,返回参数类型,参数个数和参数名称。
S302,为所述模板文件设置对应的类的名称。
S303,根据所述模板信息和所述类的名称生成基础类库文件。
其中,步骤S301-S303与图1中步骤S101-S103类似,此处不再赘述。
S304,在预设的第二交互界面上,监听用户设置的前端配置信息,以及确定用户从预设的基础类库中继承的目标前端模板。
本实施例中,可以设置第二交互界面,从而监听用户在该第二交互界面上配置的文件名称和用户通过拖拽等方式将前端控件,如表单,按钮,单选框,下拉框等进行布局和调整位置时生成的前端配置信息。并且,确定用户在该第二交互界面上配置的从预设的基础类库中继承的目标前端模板。
S305,根据所述前端配置信息和所述目标前端模板生成目标前端代码文件。
本实施例中,在前述设置继承的目标模板上,再结合上述的配置信息生成前端代码的VUE文件,并在该文件中设置对应增删改查方法模板。
在一些可能的实现方式中,在生成上述的目标前端代码文件后,可以保存目标模板和目标前端代码文件的对应关系,若系统中对基础类库中的目标前端模板进行更新,则可以一并根据该对应关系确定目标前端代码文件,并提示用户利用更新后的目标模板对目标前端代码文件进行更新。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例中,由于通过借助模板的方式进行开发,而不同的模板用于实现不同的流程或者功能,因此通过采用模板辅助开发时,可以实现相同功能的代码模板的代码复用,从而提高了前端代码的开发效率。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图4,作为对上述图1所示方法的实现,本申请提供了一种生成代码的装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的生成代码的装置包括:
响应单元401,用于响应新建模板文件的指令,确定用户设置的模板信息,所述模板信息包括方法的类型,返回参数类型,参数个数和参数名称;
设置单元402,用于为所述模板文件设置对应的类的名称;
第一生成单元403,用于根据所述模板信息和所述类的名称生成基础类库文件;
监听单元404,用于在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个所述基础类库文件中继承的目标模板;
第二生成单元405,用于根据所述配置信息和所述目标模板,生成目标代码文件。
在一些可能的实现方式中,具体参照图5,其中,监听单元404,包括:
第一监听子单元4041,用于在预设的第一交互界面上,监听用户的输入或者选择操作,确定用户配置的后端配置信息,以及确定从预设的基础类库中继承的目标后端模板;
第二生成单元405,包括:
第一生成子单元4051,用于根据所述后端配置信息和所述目标后端模板生成目标后端代码文件。
在一些可能的实现方式中,所述的生成代码的装置还包括:
测试单元,用于对所述后端配置信息中的数据源进行连接数据库测试;若数据库连接测试失败,则中止生成所述目标后端代码文件。
在一些可能的实现方式中,所述的生成代码的装置还包括:
存储单元,用于保存所述目标后端代码文件和所述目标模板之间的对应关系;
提示单元,用于在检测到所述目标模板更新时,确定所述对应关系中所述目标模板对应的所述目标后端代码文件,并生成对所述目标后端代码文件的升级提示信息。
在一些可能的实现方式中,第一生成子单元4051,具体用于根据所述后端配置信息生成实体类文件、dao层文件和service层文件。
在一些可能的实现方式中,具体参照图6,其中,监听单元404,包括:
第二监听子单元4042,用于在预设的第二交互界面上,监听用户设置的前端配置信息,以及确定用户从预设的基础类库中继承的目标前端模板;
第二生成单元405,包括:
第二生成子单元4052,用于根据所述前端配置信息和所述目标前端模板生成目标前端代码文件。
在一些可能的实现方式中,所述的生成代码的装置还包括:
配置单元,用于根据所述模板信息为所述模板文件配置增删改查模板。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例中,可以通过创建基础类库文件的形式,在不同基础类库文件中设置实现不同的方法,即对应实现不同的功能。从而,在后续开发时,可以设置直接继承基础类库,实现相同流程或者功能模块的代码复用,避免了开发人员重复编写,从而提高了代码开发的效率。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图7,图7为本实施例计算机设备基本结构框图。
所述计算机设备包括通过系统总线相互通信连接存储器701、处理器702、网络接口703。需要指出的是,图中仅示出了具有组件701-703的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器 (Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器701至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器701可以是所述计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,所述存储器701也可以是所述计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(FlashCard)等。当然,所述存储器701还可以既包括所述计算机设备的内部存储单元也包括其外部存储设备。本实施例中,所述存储器701通常用于存储安装于所述计算机设备的操作系统和各类应用软件,例如生成代码的方法的计算机可读指令等。此外,所述存储器701还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器702通常用于控制所述计算机设备的总体操作。本实施例中,所述处理器702用于运行所述存储器701中存储的计算机可读指令或者处理数据,例如运行所述生成代码的方法的计算机可读指令。
所述网络接口703可包括无线网络接口或有线网络接口,该网络接口703通常用于在所述计算机设备与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的生成代码的方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (6)

1.一种生成代码的方法,其特征在于,包括下述步骤:
响应新建模板文件的指令,确定用户设置的模板信息,所述模板信息包括方法的类型,返回参数类型,参数个数和参数名称;
为所述模板文件设置对应的类的名称;
根据所述模板信息和所述类的名称生成基础类库文件;
在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个所述基础类库文件中继承的目标模板;
根据所述配置信息和所述目标模板,生成目标代码文件;
所述在预设的交互界面上,监听用户操作,确定用户为待生成代码设置的配置信息,以及从预设的至少一个所述基础类库文件中继承的目标模板,包括:
在预设的第一交互界面上,监听用户的输入或者选择操作,确定用户配置的后端配置信息,以及确定从预设的基础类库中继承的目标后端模板;
所述根据所述配置信息和所述目标模板,生成目标代码文件,包括:
根据所述后端配置信息和所述目标后端模板生成目标后端代码文件;
所述根据所述后端配置信息和所述目标后端模板生成目标后端代码文件,包括:
根据所述后端配置信息生成实体类文件、dao层文件和service层文件;
所述在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个所述基础类库文件中继承的目标模板,包括:
在预设的第二交互界面上,监听用户设置的前端配置信息,以及确定用户从预设的基础类库中继承的目标前端模板;
所述根据所述配置信息和所述目标模板,生成目标代码文件,包括:
根据所述前端配置信息和所述目标前端模板生成目标前端代码文件;
在所述新建模板文件,并为所述模板文件设置模板信息之后,所述为所述模板文件设置对应的类的名称之前,所述方法还包括:
根据所述模板信息为所述模板文件配置增删改查模板;
所述后端配置信息包括数据源、数据表和实体名称,根据所述后端配置信息和所述目标后端模板生成目标后端代码文件,具体还包括:读取所述数据表的字段值,并根据所述实体名称和所述目标模板生成实体类文件;根据所述数据源和所述目标模板生成dao层的接口文件和XML文件;根据所述目标模板生成service层文件。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述后端配置信息和所述目标后端模板生成目标后端代码文件之前,所述方法还包括:
对所述后端配置信息中的数据源进行连接数据库测试;
若数据库连接测试失败,则中止生成所述目标后端代码文件。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述后端配置信息和所述目标模板生成目标后端代码文件之后,所述方法还包括:
保存所述目标后端代码文件和所述目标模板之间的对应关系;
在检测到所述目标模板更新时,确定所述对应关系中所述目标模板对应的所述目标后端代码文件,并生成对所述目标后端代码文件的升级提示信息。
4.一种生成代码的装置,其特征在于,所述生成代码的装置用于实现如权利要求1至3中任一项所述的生成代码的方法的步骤,所述生成代码的装置,包括:
响应单元,用于响应新建模板文件的指令,确定用户设置的模板信息,所述模板信息包括方法的类型,返回参数类型,参数个数和参数名称;
设置单元,用于为所述模板文件设置对应的类的名称;
第一生成单元,用于根据所述模板信息和所述类的名称生成基础类库文件;
监听单元,用于在预设的交互界面上,监听用户操作,确定用户为待生成代码文件设置的配置信息,以及从预设的至少一个所述基础类库文件中继承的目标模板;
第二生成单元,用于根据所述配置信息和所述目标模板,生成目标代码文件。
5.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至3中任一项所述的生成代码的方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至3中任一项所述的生成代码的方法的步骤。
CN202011498916.6A 2020-12-16 2020-12-16 一种生成代码的方法、装置、设备和计算机可读存储介质 Active CN112558946B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011498916.6A CN112558946B (zh) 2020-12-16 2020-12-16 一种生成代码的方法、装置、设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011498916.6A CN112558946B (zh) 2020-12-16 2020-12-16 一种生成代码的方法、装置、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112558946A CN112558946A (zh) 2021-03-26
CN112558946B true CN112558946B (zh) 2024-06-11

Family

ID=75063185

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011498916.6A Active CN112558946B (zh) 2020-12-16 2020-12-16 一种生成代码的方法、装置、设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112558946B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965708A (zh) * 2021-03-29 2021-06-15 武汉悦学帮网络技术有限公司 代码的生成方法及装置
CN112799717B (zh) * 2021-04-01 2021-06-25 北京航天驭星科技有限公司 设备信息系统管理方法、装置、电子设备及介质
CN113515271B (zh) * 2021-05-17 2024-02-23 中国工商银行股份有限公司 服务代码生成方法、装置、电子设备及可读存储介质
CN113641589A (zh) * 2021-09-01 2021-11-12 中国银行股份有限公司 一种数据处理方法及装置
CN114035782A (zh) * 2021-10-22 2022-02-11 交通运输部南海航海保障中心广州通信中心 基于表单设计的代码自动生成方法、系统及存储介质
CN114298561B (zh) * 2021-12-29 2023-06-09 上海赛美特软件科技有限公司 设备生产条件的生成方法、装置、电子设备及存储介质
CN116185486A (zh) * 2023-04-27 2023-05-30 苏州清研精准汽车科技有限公司 Can模块配置方法、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019690A (zh) * 2012-11-20 2013-04-03 北京思特奇信息技术股份有限公司 一种可视化的基于jet技术的组件模块开发方法
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
CN110032369A (zh) * 2019-04-24 2019-07-19 成都市映潮科技股份有限公司 一种代码自动生成方法、装置及介质
CN111782193A (zh) * 2020-07-03 2020-10-16 紫光云技术有限公司 一种基于java语言代码自动生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465590B2 (en) * 2014-07-07 2016-10-11 Sap Se Code generation framework for application program interface for model

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
CN103019690A (zh) * 2012-11-20 2013-04-03 北京思特奇信息技术股份有限公司 一种可视化的基于jet技术的组件模块开发方法
CN110032369A (zh) * 2019-04-24 2019-07-19 成都市映潮科技股份有限公司 一种代码自动生成方法、装置及介质
CN111782193A (zh) * 2020-07-03 2020-10-16 紫光云技术有限公司 一种基于java语言代码自动生成方法

Also Published As

Publication number Publication date
CN112558946A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN112558946B (zh) 一种生成代码的方法、装置、设备和计算机可读存储介质
CN111651734B (zh) 小程序应用的安装管理方法、装置、设备及系统
CN106415480B (zh) 用于安装在移动设备上的用于允许对该移动设备进行远程配置的高速应用
CN111427803B (zh) 自动化随机测试方法、装置、计算机设备及介质
CN113553269B (zh) 页面埋点上报方法及相关装置
CN110399159A (zh) 操作系统的部署方法、装置、计算机设备和存储介质
CN112394908A (zh) 埋点页面自动生成的方法、装置、计算机设备及存储介质
CN111242462A (zh) 数据处理方法及装置、计算机存储介质、电子设备
CN112835808A (zh) 接口测试方法、装置、计算机设备及存储介质
JP2014203138A (ja) 電子装置、検証方法及び検証プログラム
CN113434254B (zh) 客户端部署方法、装置、计算机设备及存储介质
CN114461223A (zh) 一种代码生成方法、装置及终端设备
CN112860662B (zh) 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质
JP2014217186A (ja) 電子装置、検証方法及び検証プログラム
CN110674426B (zh) 网页行为上报方法和装置
CN115964721A (zh) 一种程序验证方法及电子设备
CN114626352B (zh) 报表自动化生成方法、装置、计算机设备及存储介质
CN116431200A (zh) 应用数据配置信息的配置方法、装置、设备及存储介质
CN113360172B (zh) 应用部署方法、装置、计算机设备及存储介质
CN114637672A (zh) 自动化数据测试方法、装置、计算机设备及存储介质
CN114357428A (zh) 一种物联网设备的解绑方法及相关装置
CN113297028A (zh) 一种脚本执行方法、装置、计算机设备及存储介质
CN112948480B (zh) 数据抽取方法、装置、电子设备及存储介质
CN116302847B (zh) 异常信息的动态采集方法、装置、计算机设备及介质
CN113806372B (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