代码生成方法及代码生成系统与流程

文档序号:12119778阅读:262来源:国知局
代码生成方法及代码生成系统与流程

本发明涉及计算机技术领域,具体而言,涉及一种代码生成方法和一种代码生成系统。



背景技术:

相关技术中,在项目研发的过程中,通常有许多重复的配置项,比如iBatis配置文件、Hibernate配置文件、Struts、Spring、XML(Extensible markup Language,可扩展标记语言)配置等,一般的做法是在手动新建配置文件,复制XML统一的XSD(XML Schemas Definition,XML结构定义)规范头定义,然后按照标准规范创建节点配置信息。这种手动创建配置文件的方式存在如下缺陷:

1、人为手工编写的文件比较麻烦而且容易出错,并且不同的人可能形成一套自己编码风格,造成代码不能遵循统一编码规范,在后续调试和运行过程中耗费大量的时间;

2、对于数据库表到实体类对象,数据访问、接口等存在大量重复编码过程,对每一个过程的开发都需要进行代码检查,编译调试,降低了开发效率。

对于上述问题,目前还没有有效的解决方法。



技术实现要素:

本发明正是基于上述技术问题至少之一,提出了一种新的代码生成方案,可基于创建的代码生成模板生成代码,有效提升了代码的开发效率,且确保代码的规范性以及正确性。

有鉴于此,本发明提出了一种代码生成方法,包括:获取目标样列代码,并根据所述目标样例代码创建代码生成模板,其中,所述代码生成模板中包含有差异内容替换标识和共用内容;在接收到生成代码的指令时,确定所述差异内容替换标识对应的填充内容,并使用所述填充内容对所述差异内容替换标识进行填充,以得到处理后的代码生成模板;根据所述处理后的代码生成模板生成所述代码。

在该技术方案中,通过获取到的目标样例代码(目标样例代码可以是用户预先编写好的样例代码或选定的样例代码)创建代码生成模板,在接收到生成代码的指令时,确定代码生成模板中的差异内容替换标识对应的填充内容,并使用填充内容对差异内容替换标识进行填充,以根据处理后的代码生成模板生成代码,使得在代码生成过程,基于代码生成模板,对差异内容进行填充替换即可实现代码的自动生成,无需用户手动重复性的编写配置文件,确保了生成的代码的规范性、准确性,有效地提升了代码的开发效率。

在上述技术方案中,优选地,所述根据所述目标样例代码创建代码生成模板的步骤,具体包括:从所述目标样例代码中提取出差异内容和共用内容;基于所述差异内容和所述共用内容,创建所述代码生成模板;其中,在所述代码生成模板中使用所述差异内容替换标识来标识所述差异内容。

在该技术方案中,从目标样例代码中提取出差异内容和共用内容(具体地,可通过Velocity模板引擎来对目标样例代码进行处理,当然还可以通过Freemarker模板引擎或其他自定义模板引擎对目标样例代码进行处理),并基于差异内容和共用内容,创建代码生成模板,确保了代码生成模板的创建效率。其中,差异内容是指在生成代码过程中需改变、调整的内容,共用内容是指在生成代码过程中一些共用的、不需要改动的内容。

在上述任一项技术方案中,优选地,所述差异内容替换标识包括占位符。

在上述任一项技术方案中,优选地,还包括:在根据所述目标样例代码创建所述代码生成模板的过程中,判断所述代码生成模板是否需与目标数据库进行关联;在确定所述代码生成模板需与所述目标数据库关联时,为所述代码生成模板配置所述目标数据库,其中,所述目标数据库中存储有用于填充所述差异内容替换标识的填充内容;在确定所述代码生成模板不需与所述目标数据库关联时,配置用于填充所述差异内容替换标识的填充内容与所述差异内容替换标识的关联关系。

在该技术方案中,在代码生成模板的创建过程中,可根据代码生成模板是否需与目标数据库进行关联的判断结果来进一步确定为代码生成模板配置目标数据库还是差异内容替换标识与填充内容的关联关系,满足了不同的配置需求。

在上述任一项技术方案中,优选地,所述确定所述差异内容替换标识对应的填充内容的步骤,具体包括:根据所述目标数据库或所述关联关系,确定所述差异内容替换标识对应的填充内容。

在该技术方案中,在确定差异内容替换标识对应的填充内容时,可以从数据库中查找,还可以根据关联关系查找,确保了能够正确地查找到相应的填充内容,为后续代码的自动生成提供前提保障。

在上述任一项技术方案中,优选地,所述指令包括所述代码的保存路径,所述代码生成方法还包括:按照所述代码的保存路径对所述代码进行保存。

在该技术方案中,可按照代码的保存路径对代码进行保存,便于用户查找和管理代码。

根据本发明的第二方面,提出了一种代码生成系统,包括:模板生成单元,用于获取目标样列代码,并根据所述目标样例代码创建代码生成模板,其中,所述代码生成模板中包含有差异内容替换标识和共用内容;确定单元,用于在接收到生成代码的指令时,确定所述差异内容替换标识对应的填充内容;填充单元,用于使用所述填充内容对所述差异内容替换标识进行填充,以得到处理后的代码生成模板;代码生成单元,用于根据所述处理后的代码生成模板生成所述代码。

在该技术方案中,通过获取到的目标样例代码(目标样例代码可以是用户预先编写好的样例代码或选定的样例代码)创建代码生成模板,在接收到生成代码的指令时,确定代码生成模板中的差异内容替换标识对应的填充内容,并使用填充内容对差异内容替换标识进行填充,以根据处理后的代码生成模板生成代码,使得在代码生成过程,基于代码生成模板,对差异内容进行填充替换即可实现代码的自动生成,无需用户手动重复性的编写配置文件,确保了生成的代码的规范性、准确性,有效地提升了代码的开发效率。

在上述技术方案中,优选地,所述模板生成单元具体用于:从所述目标样例代码中提取出差异内容和共用内容;基于所述差异内容和所述共用内容,创建所述代码生成模板;其中,在所述代码生成模板中使用所述差异内容替换标识来标识所述差异内容。

在该技术方案中,从目标样例代码中提取出差异内容和共用内容(具体地,可通过Velocity模板引擎来对目标样例代码进行处理,当然还可以通过Freemarker模板引擎或其他自定义模板引擎对目标样例代码进行处理),并基于差异内容和共用内容,创建代码生成模板,确保了代码生成模板的创建效率。其中,差异内容是指在生成代码过程中需改变、调整的内容,共用内容是指在生成代码过程中一些共用的、不需要改动的内容。

在上述任一项技术方案中,优选地,所述差异内容替换标识包括占位符。

在上述任一项技术方案中,优选地,还包括:判断单元,用于在根据所述目标样例代码创建所述代码生成模板的过程中,判断所述代码生成模板是否需与目标数据库进行关联;配置单元,用于在所述判断单元确定所述代码生成模板需与所述目标数据库关联时,为所述代码生成模板配置所述目标数据库,其中,所述目标数据库中存储有用于填充所述差异内容替换标识的填充内容,以及在所述判断单元确定所述代码生成模板不需与所述目标数据库关联时,配置用于填充所述差异内容替换标识的填充内容与所述差异内容替换标识的关联关系。

在该技术方案中,在代码生成模板的创建过程中,可根据代码生成模板是否需与目标数据库进行关联的判断结果来进一步确定为代码生成模板配置目标数据库还是差异内容替换标识与填充内容的关联关系,满足了不同的配置需求。

在上述任一项技术方案中,优选地,所述确定单元具体用于:根据所述目标数据库或所述关联关系,确定所述差异内容替换标识对应的填充内容。

在该技术方案中,在确定差异内容替换标识对应的填充内容时,可以从数据库中查找,还可以根据关联关系查找,确保了能够正确地查找到相应的填充内容,为后续代码的自动生成提供前提保障。

在上述任一项技术方案中,优选地,所述指令包括所述代码的保存路径,所述代码生成系统还包括:存储单元,用于按照所述代码的保存路径对所述代码进行保存。

在该技术方案中,可按照代码的保存路径对代码进行保存,便于用户查找和管理代码。

通过以上技术方案,可基于创建的代码生成模板生成代码,有效提升了代码的开发效率,且确保代码的规范性以及正确性。

附图说明

图1示出了根据本发明的实施例的代码生成方法的示意流程图;

图2示出了根据本发明的一个实施例的代码生成系统的示意框图;

图3示出了根据本发明的另一个实施例的代码生成系统的示意框图;

图4示出了图3中的代码生成系统中各个单元的交互方法的示意流程图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的实施例的代码生成方法的示意流程图。

如图1所示,根据本发明的实施例的代码生成方法,包括:

步骤102,获取目标样列代码,并根据所述目标样例代码创建代码生成模板,其中,所述代码生成模板中包含有差异内容替换标识和共用内容。

步骤104,在接收到生成代码的指令时,确定所述差异内容替换标识对应的填充内容,并使用所述填充内容对所述差异内容替换标识进行填充,以得到处理后的代码生成模板。

步骤106,根据所述处理后的代码生成模板生成所述代码。

在该技术方案中,通过获取到的目标样例代码(目标样例代码可以是用户预先编写好的样例代码或选定的样例代码)创建代码生成模板,在接收到生成代码的指令时,确定代码生成模板中的差异内容替换标识对应的填充内容,并使用填充内容对差异内容替换标识进行填充,以根据处理后的代码生成模板生成代码,使得在代码生成过程,基于代码生成模板,对差异内容进行填充替换即可实现代码的自动生成,无需用户手动重复性的编写配置文件,确保了生成的代码的规范性、准确性,有效地提升了代码的开发效率。

在上述技术方案中,优选地,所述根据所述目标样例代码创建代码生成模板的步骤,具体包括:从所述目标样例代码中提取出差异内容和共用内容;基于所述差异内容和所述共用内容,创建所述代码生成模板;其中,在所述代码生成模板中使用所述差异内容替换标识来标识所述差异内容。

在该技术方案中,从目标样例代码中提取出差异内容和共用内容(具体地,可通过Velocity模板引擎来对目标样例代码进行处理,当然还可以通过Freemarker模板引擎或其他自定义模板引擎对目标样例代码进行处理),并基于差异内容和共用内容,创建代码生成模板,确保了代码生成模板的创建效率。其中,差异内容是指在生成代码过程中需改变、调整的内容,共用内容是指在生成代码过程中一些共用的、不需要改动的内容。

在上述任一项技术方案中,优选地,所述差异内容替换标识包括占位符。

在上述任一项技术方案中,优选地,还包括:在根据所述目标样例代码创建所述代码生成模板的过程中,判断所述代码生成模板是否需与目标数据库进行关联;在确定所述代码生成模板需与所述目标数据库关联时,为所述代码生成模板配置所述目标数据库,其中,所述目标数据库中存储有用于填充所述差异内容替换标识的填充内容;在确定所述代码生成模板不需与所述目标数据库关联时,配置用于填充所述差异内容替换标识的填充内容与所述差异内容替换标识的关联关系。

在该技术方案中,在代码生成模板的创建过程中,可根据代码生成模板是否需与目标数据库进行关联的判断结果来进一步确定为代码生成模板配置目标数据库还是差异内容替换标识与填充内容的关联关系,满足了不同的配置需求。

在上述任一项技术方案中,优选地,所述确定所述差异内容替换标识对应的填充内容的步骤,具体包括:根据所述目标数据库或所述关联关系,确定所述差异内容替换标识对应的填充内容。

在该技术方案中,在确定差异内容替换标识对应的填充内容时,可以从数据库中查找,还可以根据关联关系查找,确保了能够正确地查找到相应的填充内容,为后续代码的自动生成提供前提保障。

在上述任一项技术方案中,优选地,所述指令包括所述代码的保存路径,所述代码生成方法还包括:按照所述代码的保存路径对所述代码进行保存。

在该技术方案中,可按照代码的保存路径对代码进行保存,便于用户查找和管理代码。

图2示出了根据本发明的一个实施例的代码生成系统的示意框图。

如图2所示,根据本发明的一个实施例的代码生成系统200,包括:模板生成单元202、确定单元204、填充单元206和代码生成单元208。

其中,模板生成单元202用于获取目标样列代码,并根据所述目标样例代码创建代码生成模板,其中,所述代码生成模板中包含有差异内容替换标识和共用内容;确定单元204用于在接收到生成代码的指令时,确定所述差异内容替换标识对应的填充内容;填充单元206用于使用所述填充内容对所述差异内容替换标识进行填充,以得到处理后的代码生成模板;代码生成单元208用于根据所述处理后的代码生成模板生成所述代码。

在该技术方案中,通过获取到的目标样例代码(目标样例代码可以是用户预先编写好的样例代码或选定的样例代码)创建代码生成模板,在接收到生成代码的指令时,确定代码生成模板中的差异内容替换标识对应的填充内容,并使用填充内容对差异内容替换标识进行填充,以根据处理后的代码生成模板生成代码,使得在代码生成过程,基于代码生成模板,对差异内容进行填充替换即可实现代码的自动生成,无需用户手动重复性的编写配置文件,确保了生成的代码的规范性、准确性,有效地提升了代码的开发效率。

在上述技术方案中,优选地,所述模板生成单元202具体用于:从所述目标样例代码中提取出差异内容和共用内容;基于所述差异内容和所述共用内容,创建所述代码生成模板;其中,在所述代码生成模板中使用所述差异内容替换标识来标识所述差异内容。

在该技术方案中,从目标样例代码中提取出差异内容和共用内容(具体地,可通过Velocity模板引擎来对目标样例代码进行处理,当然还可以通过Freemarker模板引擎或其他自定义模板引擎对目标样例代码进行处理),并基于差异内容和共用内容,创建代码生成模板,确保了代码生成模板的创建效率。其中,差异内容是指在生成代码过程中需改变、调整的内容,共用内容是指在生成代码过程中一些共用的、不需要改动的内容。

在上述任一项技术方案中,优选地,所述差异内容替换标识包括占位符。

在上述任一项技术方案中,优选地,还包括:判断单元210,用于在根据所述目标样例代码创建所述代码生成模板的过程中,判断所述代码生成模板是否需与目标数据库进行关联;配置单元212,用于在所述判断单元210确定所述代码生成模板需与所述目标数据库关联时,为所述代码生成模板配置所述目标数据库,其中,所述目标数据库中存储有用于填充所述差异内容替换标识的填充内容,以及在所述判断单元210确定所述代码生成模板不需与所述目标数据库关联时,配置用于填充所述差异内容替换标识的填充内容与所述差异内容替换标识的关联关系。

在该技术方案中,在代码生成模板的创建过程中,可根据代码生成模板是否需与目标数据库进行关联的判断结果来进一步确定为代码生成模板配置目标数据库还是差异内容替换标识与填充内容的关联关系,满足了不同的配置需求。

在上述任一项技术方案中,优选地,所述确定单元204具体用于:根据所述目标数据库或所述关联关系,确定所述差异内容替换标识对应的填充内容。

在该技术方案中,在确定差异内容替换标识对应的填充内容时,可以从数据库中查找,还可以根据关联关系查找,确保了能够正确地查找到相应的填充内容,为后续代码的自动生成提供前提保障。

在上述任一项技术方案中,优选地,所述指令包括所述代码的保存路径,所述代码生成系统还包括:存储单元214,用于按照所述代码的保存路径对所述代码进行保存。

在该技术方案中,可按照代码的保存路径对代码进行保存,便于用户查找和管理代码。

以下结合图3和图4对本发明的技术方案作进一步说明。

如图3所示,在本实施例中,代码生成系统300包括:模板配置单元302、数据源适配单元304以及代码生成单元306。用户可使用模板配置单元302根据自己的需求自定义生成代码生成模板,涵盖配置文件、接口文件、实体类文件、映射文件等;数据源适配单元304可用于配置代码生成模板的数据源,可支持业界常用的数据驱动,如:mysql、oracle、db2、sqlserver等;代码生成单元306,对代码生成模板中的占位符用对应的填充内容进行填充,生成完整代码。

具体地,如图4所示,各个单元间的处理过程:

一、模板配置单元302的处理流程

步骤1:按照正常流程,编写一个样例代码(即目标样例代码)。

步骤2:根据样例代码的内容抽象和提取差异部分内容。

步骤3:替换差异部分为占位符;

步骤4:判断代码生成是否涉及数据库操作部分,若是,跳转至数据源适配单元304进行数据源的配置;否则,配置占位符需要替换的信息内容(即填充内容)。

二、数据源适配单元304的处理流程

选择代码生成模板对应的数据库类型驱动,以及选择需要生成的实体表,实体表中存储有填充内容。

三、代码生成单元306的处理流程

步骤1:在模板配置单元302定义好模板文件之后,读取这些文件,指定启动类以及指定需要生成代码启动程序。

步骤2:配置代码生成需要保存的路径。

步骤3:根据之前的模板配置,判断代码生成模板是否连接到数据库。

步骤4:代码生成模板连接到数据库时,直接到数据源适配单元304中获取占位符需要填充的内容,具体地,可由元数据驱动根据实体表信息来获取填充内容,或在代码生成模板未连接数据库,直接从模板配置单元302中获取占位符映射中待填充内容。

步骤5:根据占位符和填充内容的映射关系,执行代码生成操作;

步骤6:按照指定的保存路径保存的代码。

在上述实施例中,代码生成模板并不局限于编程语言,可以对任何语言进行模板配置及制定,还可通过数据源适配单元为代码生成模板配置数据库驱动元数据模型,此外还可以根据元数据的数据库类型及字段类型快速生成各类配置文件,如映射文件、实体类文件等,在实际项目中,无论多复杂的系统,不同的业务逻辑之间一定或多或少会有相似的代码,可以对代码内容进行抽象提取,差异部分使用占位符替代,使用Velocity模板引擎生成部分内容的代码,而且即使有一些非共性的内容,也可以在生成的代码中继续修改,使得生成的代码更好维护,更加规范化、能够保持风格统一,可可以广泛应用于如构建脚本模板的生成、静态资源模板生成、Java代码等有模板化代码生成需求的产品。

以上结合附图详细说明了本发明的技术方案,本发明的技术方案提出了一种新的代码生成方案,可基于创建的代码生成模板生成代码,有效提升了代码的开发效率,且确保代码的规范性以及正确性。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1