CN106648690A - 一种代码自动生成方法及装置 - Google Patents
一种代码自动生成方法及装置 Download PDFInfo
- Publication number
- CN106648690A CN106648690A CN201611250169.8A CN201611250169A CN106648690A CN 106648690 A CN106648690 A CN 106648690A CN 201611250169 A CN201611250169 A CN 201611250169A CN 106648690 A CN106648690 A CN 106648690A
- Authority
- CN
- China
- Prior art keywords
- code
- file
- template
- module
- automatic build
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种代码自动生成方法及装置,通过在基于MVC框架创建项目工程的情况下,接收代码自动生成请求(所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录);获取预设的与所述数据库表对应的元信息;处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;将所述代码文件输出到所述目标路径下的方式,实现了在基于MVC框架创建项目工程(计算机应用)的过程中,计算机应用中部分代码(代码文件)的自动生成,有效降低了开发人员的代码编写量。
Description
技术领域
本发明涉及计算机软件技术领域,特别是涉及一种代码自动生成方法及装置。
背景技术
为了给人们的日常生活提供便利,丰富人们的日常生活,越来越多的计算机应用应运而生。计算机应用包括即时通信应用、游戏应用等。
计算机应用通常是由开发人员基于MVC框架通过代码编写的方式开发实现。因此,随着计算机应用功能的增多,在开发计算机应用时,开发人员的代码编写量也变得越来越庞大。
因此,提供一种代码自动生成方法及装置,以在降低开发人员代码编写量的基础上实现对计算机应用的开发,是亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种代码自动生成方法及装置,以在降低开发人员代码编写量的基础上,实现对计算机应用的开发。
为了实现上述目的,本发明实施例提供的技术方案如下:
一种代码自动生成方法,包括:
基于MVC框架创建项目工程的情况下,接收代码自动生成请求,所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录;
获取预设的与所述数据库表对应的元信息;
处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;
利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;
将所述代码文件输出到所述目标路径下。
优选的,所述利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件,包括:
利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件;
利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件;
其中,所述前端代码文件和后端代码文件构成与所述代码自动生成请求对应的代码文件。
优选的,所述后端代码生成模板包括功能代码模块和注解模块,所述利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件,包括:
利用所述基本信息属性对象为所述功能代码模块中的变量赋值,将所述功能代码模块被赋值后的后端代码生成模板确定为初始后端代码文件;
利用所述构造注解属性对象为所述注解模块中的变量赋值,将所述注解模块被赋值后的所述初始后端代码文件确定为后端代码文件;
其中,所述利用所述基本信息属性对象为所述功能代码模块中的变量赋值,得到与所述功能代码模块对应的至少一个功能代码;
所述利用所述构造注解属性对象为所述注解模块中的变量赋值,得到分别与每个所述功能代码对应的注解。
优选的,前端代码生成模块包括至少一个页面模板,所述页面模板包括公共方法模块和标签模块,
所述利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件,包括:
利用所述基本信息属性对象为所述公共方法模块中的变量赋值,将所述公共方法模块被赋值后的所述页面模板确定为第一前端代码生成文件;
利用所述基本信息属性对象为所述标签模块赋值,将所述标签模块被赋值后的所述第一前端代码生成文件确定为第二前端代码生成文件;
其中,各个所述第二前端代码生成文件构成与所述代码自动生成请求对应的前端代码文件;所述利用所述基本信息属性对象为所述公共方法模块中的变量赋值,得到与所述公共方法模块对应的至少一个公共方法,每个所述公共方法与一个所述注解相关联。
优选的,所述接收代码自动生成请求,包括:
响应对预设的代码自动生成条件的成功触发,展示代码自动生成对话框;
接收代码自动生成请求,所述代码自动生成请求为响应用户对所述对话框的操作生成的。
优选的,所述代码自动生成请求还指示有目标文件名,所述代码文件的文件名与所述目标文件名相关。
优选的,所述代码生成模板为freemarker模板。
优选的,所述后端代码生成模板包括:controller类文件、domain类文件、service接口类文件、service实现类文件。
优选的,所述前端代码生成模板包括:前端列表页面模板、前端添加页面模板、前端修改页面模板,和/或前端明细页面模板。
一种代码自动生成装置,包括:
代码自动生成请求接收单元,用于在基于MVC框架创建项目工程的情况下,接收代码自动生成请求,所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录;
元信息获取单元,用于获取预设的与所述数据库表对应的元信息;
元信息处理单元,用于处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;
代码文件自动生成单元,用于利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;
代码文件输出单元,用于将所述代码文件输出到所述目标路径下。
本申请实施例提供一种代码自动生成方法及装置,通过在基于MVC框架创建项目工程的情况下,接收代码自动生成请求(所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录);获取预设的与所述数据库表对应的元信息;处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;将所述代码文件输出到所述目标路径下的方式,实现了在基于MVC框架创建项目工程(计算机应用)的过程中,计算机应用中部分代码(代码文件)的自动生成,有效降低了开发人员的代码编写量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种代码自动生成方法流程图;
图2为本申请实施例提供的一种利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件的方法流程图;
图3为本申请实施例提供的一种利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件的方法流程图;
图4为本申请实施例提供的一种利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件的方法流程图;
图5为本申请实施例提供的一种代码自动生成装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例:
图1为本申请实施例提供的一种代码自动生成方法流程图。
如图1所示,该方法包括:
S101、基于MVC框架创建项目工程的情况下,接收代码自动生成请求,所述代码自动生成请求指示有目标路径和数据库表;
本申请实施例提供的一种代码自动生成方法应用于基于MVC框架创建项目工程的情况下,所述项目工程为计算机应用。
可选的,所述计算机应用为web应用。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置计算机应用的具体内容,在此不做限定。
在本申请实施例中,优选的,本申请实施例提供一种代码自动生成方法应用于代码自动生成服务器,所述代码自动生成服务器为所述代码自动生成方法提供技术支持。
可选的,所述代码自动生成服务器的功能可由多台服务器组成的服务器集群组实现,也可由单体服务器实现。
在本申请实施例中,优选的,在基于MVC框架创建项目工程时,可接收用户发送的代码自动生成请求,所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录,即,所述目标路径为所述项目工程中的一个子目录。
在本申请实施例中,优选的,所述项目工程对应数据库,所述代码自动生成请求指示的数据库表位于所述项目工程对应的数据库中。
需要说明的是:所述代码自动生成请求指示的目标路径、数据表均由用户在发送代码自动生成请求时,由用户根据自己的需求而设定。
在本申请实施例中,优选的,所述接收代码自动生成请求,包括:响应对预设的代码自动生成条件的成功触发,展示代码自动生成对话框;接收代码自动生成请求,所述代码自动生成请求为响应用户对所述对话框的操作生成的。
可选的,预设有代码自动生成条件,成功触发所述代码自动生成条件的方式包括:代码自动生成按钮被按下。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置代码自动生成条件的具体内容,以及成功触发代码自动生成条件的具体方式,在此不做限定。
可选的,所述代码自动生成对话框中包括信息输入位置以及请求发送按钮;通过所述信息输入位置可实现信息输入,在完成信息输入后可通过点击所述请求发送按钮的方式,实现发送代码自动生成请求的目的,所述代码自动生成请求指示的目标路径和数据库表是由用户对所述信息输入位置的操作实现的。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设定实现“所述代码自动生成请求为响应用户对所述对话框的操作生成的”过程的具体方式,在此不做限定。
S102、获取预设的与所述数据库表对应的元信息;
可选的,所述项目工程对应数据库,所述数据库中包括至少一张数据库表,预设有分别与每张所述数据库表对应的元信息。
在本申请实施例中,优选的,所述代码自动生成请求指示的数据库表位于与所述项目工程对应的数据库中,所述代码自动生成请求指示的数据库表的张数为至少一张。
可选的,预设分别与数据库中的每张数据库表对应的元信息的过程,包括:分别对所述数据库中的每张数据库表进行分析,确定与所述数据库表对应的元信息。
可选的,当接收到代码自动生成请求后,针对所述代码自动生成请求指示的每张数据库表分别执行步骤S102-S105。
S103、处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;
在本申请实施例中,优选的,所述基本信息属性对象指示一个对象,所述对象为携带级别信息属性的对象。所述构造注解属性对象指示一个对象,所述对象为携带构造注解属性的对象。
S104、利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;
可选的,预设有代码生成模板,在得到与所述数据库表对应的基本信息属性对象和构造注解属性对象后,可利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件。
S105、将所述代码文件输出到所述目标路径下。
可选的,将所述代码文件输出到所述目标路径下,包括:将所述代码文件显示到用于创建项目工程的展示界面中所展示的所述目标路径下,便于在所述展示界面中所展示的项目工程中直观展示所述代码文件,便于开发人员直接对所述项目工程中的代码文件进行处理(例如,修改等)。
在本申请实施例中,优选的,将所述代码文件输出到所述目标路径下,还包括:将所述代码文件输出到用于存储所述项目工程的数据库中的所述目标路径下。
需要说明的是:在用于创建项目工程的展示界面中和用于存储所述项目工程的数据库中均存在所述目标路径,即,用于创建项目工程的展示界面中所展示的所述项目工程的目录(此处指示所述展示界面中展示的所述项目工程中的各个文件的路径),与用于存储所述项目工程的数据库中存储的所述项目工程的路径(此处指示所述数据库中存储的所述项目工程的各个文件的路径)完全相同。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置“将所述代码文件输出到所述目标路径下”的具体方式,在此不做限定。
本申请实施例提供一种代码自动生成方法,通过在基于MVC框架创建项目工程的情况下,接收代码自动生成请求(所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录);获取预设的与所述数据库表对应的元信息;处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;将所述代码文件输出到所述目标路径下的方式,实现了在基于MVC框架创建项目工程(计算机应用)的过程中,计算机应用中部分代码(代码文件)的自动生成,有效降低了开发人员的代码编写量。
为了更加全面的对本申请实施例提供的一种代码自动生成方法进行阐述,现对本申请实施例提供的一种利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件的方法进行详细介绍,请参见图2。
如图2所示,该方法包括:
S201、利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件;
可选的,代码生成模板包括后端代码生成模板和前端代码生成模板。
可选的,所述后端代码生成模板包括:controller类文件、domain类文件、service接口类文件、service实现类文件。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置代码生成模板和后端代码生成模板中的具体内容,在此不做限定。
可选的,所述代码生成模板为freemarker模板。即,所述代码生成模板是根据freemarker模板语言编写。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置代码生成模板所使用的具体模板语言,在此不做限定。
S202、利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件。
可选的,所述前端代码生成模板包括:前端列表页面模板、前端添加页面模板、前端修改页面模板,和/或前端明细页面模板。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置前端代码生成模板中的具体内容,在此不做限定。
在本申请实施例中,优选的,所述前端代码文件和后端代码文件构成与所述代码自动生成请求对应的代码文件。
通过上述对本申请实施例提供的利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件的方法的进一步介绍,使得本申请实施例提供的代码自动生成方法更加清晰、完整,便于本领域技术人员理解。
为了更加全面的对本申请实施例提供的一种代码自动生成方法进行阐述,现对本申请实施例提供的一种利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件的方法进行详细介绍,请参见图3。
如图3所示,该方法包括:
S301、利用所述基本信息属性对象为所述功能代码模块中的变量赋值,将所述功能代码模块被赋值后的后端代码生成模板确定为初始后端代码文件;
在本申请实施例中,优选的,所述后端代码生成模板包括功能代码模块和注解模块。
可选的,所述利用所述基本信息属性对象为所述功能代码模块中的变量赋值,将所述功能代码模块被赋值后的后端代码生成模板确定为初始后端代码文件,包括:遍历所述后端代码生成模板中的功能代码模块中的变量;从所述基本信息属性对象中确定与所遍历到的变量对应的值;利用所确定的值为所遍历到的变量赋值,将所述功能代码模块中的变量被赋值后的所述后端代码生成模板确定为初始后端代码文件。
在本申请实施例中,优选的,遍历所述后端代码生成模板中的功能代码模块中的变量;针对所遍历到的每个变量而言,从所述基本信息属性对象中确定与所述变量对应的值,并将所述值赋值给所述变量;将所述功能代码模块中的所有变量均被赋值后的所述后端代码生成模板确定为初始后端代码文件。
S302、利用所述构造注解属性对象为所述注解模块中的变量赋值,将所述注解模块被赋值后的所述初始后端代码文件确定为后端代码文件。
其中,所述利用所述基本信息属性对象为所述功能代码模块中的变量赋值,得到与所述功能代码模块对应的至少一个功能代码;所述利用所述构造注解属性对象为所述注解模块中的变量赋值,得到分别与每个所述功能代码对应的注解。
可选的,所述利用所述构造注解属性对象为所述注解模块中的变量赋值,将所述注解模块被赋值后的所述初始后端代码文件确定为后端代码文件,包括:遍历所述初始后端代码文件中的注解模块中的变量;从所述构造注解属性对象中确定与所遍历到的变量对应的值;利用所确定的值为所遍历到的变量赋值,将所述注解模块中的变量被赋值后的所述初始后端代码文件确定为后端代码文件。
在本申请实施例中,优选的,遍历所述初始后端代码生成文件中的注解模块中的变量;针对所遍历到的每个变量而言,从所述构造注解属性对象中确定与所述变量对应的值,并将所述值赋值给所述变量;将所述注解模块中的所有变量均被赋值后的所述初始后端代码文件确定为后端代码文件。
通过上述对本申请实施例提供的利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件的方法的进一步介绍,使得本申请实施例提供的代码自动生成方法更加清晰、完整,便于本领域技术人员理解。
为了更加全面的对本申请实施例提供的一种代码自动生成方法进行阐述,现对本申请实施例提供的一种利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件的方法进行详细介绍,请参见图4。
如图4所示,该方法包括:
S401、利用所述基本信息属性对象为所述公共方法模块中的变量赋值,将所述公共方法模块被赋值后的所述页面模板确定为第一前端代码生成文件;
在本申请实施例中,优选的,前端代码生成模块包括至少一个页面模板,所述至少一个页面模板包括:前端列表页面模板、前端添加页面模板、前端修改页面模板,和/或前端明细页面模板。每个所述页面模板均包括公共方法模块和标签模块。
可选的,所述利用所述基本信息属性对象为所述公共方法模块中的变量赋值,将所述公共方法模块被赋值后的所述页面模板确定为第一前端代码生成文件,包括:遍历所述页面模板中的公共方法模块中的变量;从所述基本信息属性对象中确定与所遍历到的变量对应的值;利用所确定的值为所遍历到的变量赋值,将所述公共方法模块中的变量被赋值后的所述页面模板确定为第一前端代码生成文件。
在本申请实施例中,优选的,针对每个页面模板,分别执行以下过程:遍历所述页面模板中的公共方法模块中的变量;针对所遍历到的每个变量而言,从所述基本信息属性对象中确定与所述变量对应的值,并将所述值赋值给所述变量;将所述公共方法模块中的所有变量均被赋值后的所述页面模板确定第一前端代码生成文件。
S402、利用所述基本信息属性对象为所述标签模块赋值,将所述标签模块被赋值后的所述第一前端代码生成文件确定为第二前端代码生成文件,各个所述第二前端代码生成文件构成与所述代码自动生成请求对应的前端代码文件。
其中,所述利用所述基本信息属性对象为所述公共方法模块中的变量赋值,得到与所述公共方法模块对应的至少一个公共方法,每个所述公共方法与一个所述注解相关联。
可选的,所述利用所述基本信息属性对象为所述标签模块赋值,将所述标签模块被赋值后的所述第一前端代码生成文件确定为第二前端代码生成文件,包括:遍历所述第一前端代码生成文件中的标签模块中的变量;从所述基本信息属性对象中确定与所述遍历到的变量对应的值;利用所确定的值为所遍历到的变量赋值,将所述标签模块中的变量被赋值后的所述第一前端代码生成文件确定为第二前端代码生成文件。
在本申请实施例中,优选的,遍历所述第一前端代码生成文件中的标签模块中的变量;针对所遍历到的每个变量而言,从所述基本信息属性对象中确定与所述变量对应的值,并将所述值赋值给所述变量;将所述标签模块中的所有变量均被赋值后的所述第一前端代码生成文件确定为第二前端代码生成文件。
通过上述对本申请实施例提供的利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件的方法的进一步介绍,使得本申请实施例提供的代码自动生成方法更加清晰、完整,便于本领域技术人员理解。
进一步的,在本申请实施例提供的一种代码自动生成方法中,还包括:所述代码自动生成请求还指示有目标文件名,所述代码文件的文件名与所述目标文件名相关。
可选的,接收到的所述代码自动生成请求中还指示有目标文件名,通过本申请实施例提供的一种代码自动生成方法所生成的代码文件的文件名与所述目标文件名相关。例如,若所述目标文件名为A,则所述代码文件的文件名为A1。
在本申请实施例中,优选的,所述代码文件中包括的后端代码文件和前端代码文件的文件名均与所述目标文件名相关。例如,若所述目标文件名为B,所述代码文件中的后端代码文件的文件名为B1,所述代码文件中的前端代码文件的文件名为B2。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置所述代码文件的文件名与所述目标文件名相关的具体方式,例如仅设置所述代码文件的后端代码文件的文件名与所述目标文件名相关,在此不做限定。
通过上述对本申请实施例提供的代码自动生成方法的进一步介绍,使得本申请实施例提供的代码自动生成方法更加清晰、完整,便于本领域技术人员理解。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
图5为本申请实施例提供的一种代码自动生成装置的结构示意图。
如图5所示,该装置包括:
代码自动生成请求接收单元51,用于在基于MVC框架创建项目工程的情况下,接收代码自动生成请求,所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录;
元信息获取单元52,用于获取预设的与所述数据库表对应的元信息;
元信息处理单元53,用于处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;
代码文件自动生成单元54,用于利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;
代码文件输出单元55,用于将所述代码文件输出到所述目标路径下。
进一步的,本申请实施例提供的一种代码自动生成装置中,所述代码自动生成请求还指示有目标文件名,所述代码文件的文件名与所述目标文件名相关。
本申请实施例提供一种代码自动生成装置,通过在基于MVC框架创建项目工程的情况下,接收代码自动生成请求(所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录);获取预设的与所述数据库表对应的元信息;处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;将所述代码文件输出到所述目标路径下的方式,实现了在基于MVC框架创建项目工程(计算机应用)的过程中,计算机应用中部分代码(代码文件)的自动生成,有效降低了开发人员的代码编写量。
本发明中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上仅是本发明的优选实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种代码自动生成方法,其特征在于,包括:
基于MVC框架创建项目工程的情况下,接收代码自动生成请求,所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录;
获取预设的与所述数据库表对应的元信息;
处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;
利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;
将所述代码文件输出到所述目标路径下。
2.根据权利要求1所述的方法,其特征在于,所述利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件,包括:
利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件;
利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件;
其中,所述前端代码文件和后端代码文件构成与所述代码自动生成请求对应的代码文件。
3.根据权利要求2所述的方法,其特征在于,所述后端代码生成模板包括功能代码模块和注解模块,所述利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板中的后端代码生成模板,自动生成与所述代码自动生成请求对应的后端代码文件,包括:
利用所述基本信息属性对象为所述功能代码模块中的变量赋值,将所述功能代码模块被赋值后的后端代码生成模板确定为初始后端代码文件;
利用所述构造注解属性对象为所述注解模块中的变量赋值,将所述注解模块被赋值后的所述初始后端代码文件确定为后端代码文件;
其中,所述利用所述基本信息属性对象为所述功能代码模块中的变量赋值,得到与所述功能代码模块对应的至少一个功能代码;
所述利用所述构造注解属性对象为所述注解模块中的变量赋值,得到分别与每个所述功能代码对应的注解。
4.根据权利要求2所述的方法,其特征在于,前端代码生成模块包括至少一个页面模板,所述页面模板包括公共方法模块和标签模块,
所述利用所述基本信息属性对象和预设的代码生成模板中的前端代码生成模板,自动生成与所述代码自动生成请求对应的前端代码文件,包括:
利用所述基本信息属性对象为所述公共方法模块中的变量赋值,将所述公共方法模块被赋值后的所述页面模板确定为第一前端代码生成文件;
利用所述基本信息属性对象为所述标签模块赋值,将所述标签模块被赋值后的所述第一前端代码生成文件确定为第二前端代码生成文件;
其中,各个所述第二前端代码生成文件构成与所述代码自动生成请求对应的前端代码文件;所述利用所述基本信息属性对象为所述公共方法模块中的变量赋值,得到与所述公共方法模块对应的至少一个公共方法,每个所述公共方法与一个所述注解相关联。
5.根据权利要求1所述的方法,其特征在于,所述接收代码自动生成请求,包括:
响应对预设的代码自动生成条件的成功触发,展示代码自动生成对话框;
接收代码自动生成请求,所述代码自动生成请求为响应用户对所述对话框的操作生成的。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述代码自动生成请求还指示有目标文件名,所述代码文件的文件名与所述目标文件名相关。
7.根据权利要求6所述的方法,其特征在于,所述代码生成模板为freemarker模板。
8.根据权利要求7所述的方法,其特征在于,所述后端代码生成模板包括:controller类文件、domain类文件、service接口类文件、service实现类文件。
9.根据权利要求7所述的方法,其特征在于,所述前端代码生成模板包括:前端列表页面模板、前端添加页面模板、前端修改页面模板,和/或前端明细页面模板。
10.一种代码自动生成装置,其特征在于,包括:
代码自动生成请求接收单元,用于在基于MVC框架创建项目工程的情况下,接收代码自动生成请求,所述代码自动生成请求指示有目标路径和数据库表,所述目标路径为所述项目工程的子目录;
元信息获取单元,用于获取预设的与所述数据库表对应的元信息;
元信息处理单元,用于处理所获取的元信息,得到与所述数据库表对应的基本信息属性对象和构造注解属性对象;
代码文件自动生成单元,用于利用所述基本信息属性对象、构造注解属性对象和预设的代码生成模板,自动生成与所述代码自动生成请求对应的代码文件;
代码文件输出单元,用于将所述代码文件输出到所述目标路径下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611250169.8A CN106648690B (zh) | 2016-12-29 | 2016-12-29 | 一种代码自动生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611250169.8A CN106648690B (zh) | 2016-12-29 | 2016-12-29 | 一种代码自动生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106648690A true CN106648690A (zh) | 2017-05-10 |
CN106648690B CN106648690B (zh) | 2020-04-07 |
Family
ID=58837192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611250169.8A Active CN106648690B (zh) | 2016-12-29 | 2016-12-29 | 一种代码自动生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648690B (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729003A (zh) * | 2017-11-20 | 2018-02-23 | 江苏神州信源系统工程有限公司 | 代码的自动生成方法、装置及电子设备 |
CN108182059A (zh) * | 2017-12-28 | 2018-06-19 | 云之行互联网科技(北京)有限公司 | 一种软件代码的处理方法及装置 |
CN108595159A (zh) * | 2018-05-10 | 2018-09-28 | 天津科技大学 | 一种基于关系表描述软件需求的软件生成方法 |
CN108762743A (zh) * | 2018-05-23 | 2018-11-06 | 浪潮软件集团有限公司 | 一种数据表操作代码生成方法及装置 |
CN108920140A (zh) * | 2018-07-19 | 2018-11-30 | 河北中科恒运软件科技股份有限公司 | 一种前后端统一校验方法 |
CN108920137A (zh) * | 2018-07-01 | 2018-11-30 | 甘肃万维信息技术有限责任公司 | 一种基于eclipse框架的创建web项目和代码的系统 |
CN109062628A (zh) * | 2018-07-12 | 2018-12-21 | 北京猫眼文化传媒有限公司 | 一种模块聚合加载方法及装置 |
CN109117131A (zh) * | 2018-08-16 | 2019-01-01 | 杭州云纪网络科技有限公司 | 代码生成方法及装置、存储介质及电子终端 |
CN109165012A (zh) * | 2018-09-17 | 2019-01-08 | 北京中电普华信息技术有限公司 | 一种非解释型微应用实现方法及系统 |
CN109189379A (zh) * | 2018-09-04 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 代码生成方法和装置 |
CN109614097A (zh) * | 2018-12-07 | 2019-04-12 | 北京金山云网络技术有限公司 | 平台代码的生成方法、装置及服务器 |
CN109614091A (zh) * | 2018-10-09 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 代码自动生成方法、装置、电子设备及存储介质 |
CN109634607A (zh) * | 2018-12-13 | 2019-04-16 | 泰康保险集团股份有限公司 | 一种代码自动生成的方法及装置 |
CN109710238A (zh) * | 2018-12-20 | 2019-05-03 | 国云科技股份有限公司 | 一种基于Spring Cloud的代码生成方法 |
CN110134427A (zh) * | 2018-02-08 | 2019-08-16 | 北京京东尚科信息技术有限公司 | 一种生成代码文件的方法和装置 |
CN110399128A (zh) * | 2019-07-26 | 2019-11-01 | 北京恒华伟业科技股份有限公司 | 代码文件生成方法及装置 |
CN110674625A (zh) * | 2019-08-29 | 2020-01-10 | 浙江数链科技有限公司 | 代码生成的方法、装置、计算机设备和存储介质 |
CN110704055A (zh) * | 2019-09-06 | 2020-01-17 | 北京三快在线科技有限公司 | 接口前置的优化方法、装置、电子设备及存储介质 |
CN110851128A (zh) * | 2019-11-04 | 2020-02-28 | 紫光云技术有限公司 | 一种基本功能的应用代码生成方法 |
CN110928548A (zh) * | 2019-11-14 | 2020-03-27 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据处理方法以及设备 |
CN110968306A (zh) * | 2018-09-28 | 2020-04-07 | 千寻位置网络有限公司 | 数据的代码自动生成方法及装置、控制设备 |
CN111078213A (zh) * | 2018-10-18 | 2020-04-28 | 马上消费金融股份有限公司 | 一种代码生成方法及代码生成装置 |
CN111162977A (zh) * | 2019-12-20 | 2020-05-15 | 青岛聚好联科技有限公司 | 一种物联网终端接入云服务的方法及装置 |
CN111273902A (zh) * | 2018-12-05 | 2020-06-12 | 深圳市茁壮网络股份有限公司 | 一种项目、目录架构生成方法及装置 |
CN111352742A (zh) * | 2018-12-21 | 2020-06-30 | 北京奇虎科技有限公司 | 一种基于app组件化的信息传递方法及装置 |
CN111614604A (zh) * | 2019-02-26 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种代码文件生成方法和装置 |
CN112181393A (zh) * | 2020-09-28 | 2021-01-05 | 中国建设银行股份有限公司 | 前后端代码生成方法、装置、计算机设备及存储介质 |
CN113010157A (zh) * | 2021-03-08 | 2021-06-22 | 北京达佳互联信息技术有限公司 | 一种代码生成方法及装置 |
CN113391811A (zh) * | 2020-03-13 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 函数编译方法、装置、电子设备及计算机可读存储介质 |
CN114385175A (zh) * | 2020-10-20 | 2022-04-22 | 武汉斗鱼鱼乐网络科技有限公司 | 一种代码生成方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500087A (zh) * | 2013-09-17 | 2014-01-08 | 福建亿榕信息技术有限公司 | 一种基于maven插件和freemarker模版的代码生成方法及装置 |
CN104331285A (zh) * | 2014-10-30 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种代码自动生成方法及系统 |
CN104424338A (zh) * | 2013-09-11 | 2015-03-18 | 北大方正集团有限公司 | web系统的自动生成装置和自动生成方法 |
CN105760168A (zh) * | 2016-02-23 | 2016-07-13 | 深圳竹信科技有限公司 | 一种代码文件自动生成方法及系统 |
-
2016
- 2016-12-29 CN CN201611250169.8A patent/CN106648690B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424338A (zh) * | 2013-09-11 | 2015-03-18 | 北大方正集团有限公司 | web系统的自动生成装置和自动生成方法 |
CN103500087A (zh) * | 2013-09-17 | 2014-01-08 | 福建亿榕信息技术有限公司 | 一种基于maven插件和freemarker模版的代码生成方法及装置 |
CN104331285A (zh) * | 2014-10-30 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种代码自动生成方法及系统 |
CN105760168A (zh) * | 2016-02-23 | 2016-07-13 | 深圳竹信科技有限公司 | 一种代码文件自动生成方法及系统 |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729003A (zh) * | 2017-11-20 | 2018-02-23 | 江苏神州信源系统工程有限公司 | 代码的自动生成方法、装置及电子设备 |
CN108182059A (zh) * | 2017-12-28 | 2018-06-19 | 云之行互联网科技(北京)有限公司 | 一种软件代码的处理方法及装置 |
CN110134427A (zh) * | 2018-02-08 | 2019-08-16 | 北京京东尚科信息技术有限公司 | 一种生成代码文件的方法和装置 |
CN108595159A (zh) * | 2018-05-10 | 2018-09-28 | 天津科技大学 | 一种基于关系表描述软件需求的软件生成方法 |
CN108762743B (zh) * | 2018-05-23 | 2021-09-03 | 浪潮软件股份有限公司 | 一种数据表操作代码生成方法及装置 |
CN108762743A (zh) * | 2018-05-23 | 2018-11-06 | 浪潮软件集团有限公司 | 一种数据表操作代码生成方法及装置 |
CN108920137A (zh) * | 2018-07-01 | 2018-11-30 | 甘肃万维信息技术有限责任公司 | 一种基于eclipse框架的创建web项目和代码的系统 |
CN109062628A (zh) * | 2018-07-12 | 2018-12-21 | 北京猫眼文化传媒有限公司 | 一种模块聚合加载方法及装置 |
CN108920140B (zh) * | 2018-07-19 | 2022-03-01 | 河北中科恒运软件科技股份有限公司 | 一种前后端统一校验方法 |
CN108920140A (zh) * | 2018-07-19 | 2018-11-30 | 河北中科恒运软件科技股份有限公司 | 一种前后端统一校验方法 |
CN109117131B (zh) * | 2018-08-16 | 2022-08-16 | 浙江鲸腾网络科技有限公司 | 代码生成方法及装置、存储介质及电子终端 |
CN109117131A (zh) * | 2018-08-16 | 2019-01-01 | 杭州云纪网络科技有限公司 | 代码生成方法及装置、存储介质及电子终端 |
CN109189379A (zh) * | 2018-09-04 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 代码生成方法和装置 |
CN109165012A (zh) * | 2018-09-17 | 2019-01-08 | 北京中电普华信息技术有限公司 | 一种非解释型微应用实现方法及系统 |
CN110968306A (zh) * | 2018-09-28 | 2020-04-07 | 千寻位置网络有限公司 | 数据的代码自动生成方法及装置、控制设备 |
CN109614091A (zh) * | 2018-10-09 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 代码自动生成方法、装置、电子设备及存储介质 |
CN111078213A (zh) * | 2018-10-18 | 2020-04-28 | 马上消费金融股份有限公司 | 一种代码生成方法及代码生成装置 |
CN111078213B (zh) * | 2018-10-18 | 2024-01-19 | 马上消费金融股份有限公司 | 一种代码生成方法及代码生成装置 |
CN111273902B (zh) * | 2018-12-05 | 2024-04-26 | 深圳市茁壮网络股份有限公司 | 一种项目、目录架构生成方法及装置 |
CN111273902A (zh) * | 2018-12-05 | 2020-06-12 | 深圳市茁壮网络股份有限公司 | 一种项目、目录架构生成方法及装置 |
CN109614097A (zh) * | 2018-12-07 | 2019-04-12 | 北京金山云网络技术有限公司 | 平台代码的生成方法、装置及服务器 |
CN109634607A (zh) * | 2018-12-13 | 2019-04-16 | 泰康保险集团股份有限公司 | 一种代码自动生成的方法及装置 |
CN109710238A (zh) * | 2018-12-20 | 2019-05-03 | 国云科技股份有限公司 | 一种基于Spring Cloud的代码生成方法 |
CN111352742B (zh) * | 2018-12-21 | 2024-02-09 | 三六零科技集团有限公司 | 一种基于app组件化的信息传递方法及装置 |
CN111352742A (zh) * | 2018-12-21 | 2020-06-30 | 北京奇虎科技有限公司 | 一种基于app组件化的信息传递方法及装置 |
CN111614604A (zh) * | 2019-02-26 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种代码文件生成方法和装置 |
CN111614604B (zh) * | 2019-02-26 | 2022-06-14 | 阿里巴巴集团控股有限公司 | 一种代码文件生成方法和装置 |
CN110399128A (zh) * | 2019-07-26 | 2019-11-01 | 北京恒华伟业科技股份有限公司 | 代码文件生成方法及装置 |
CN110674625A (zh) * | 2019-08-29 | 2020-01-10 | 浙江数链科技有限公司 | 代码生成的方法、装置、计算机设备和存储介质 |
CN110704055A (zh) * | 2019-09-06 | 2020-01-17 | 北京三快在线科技有限公司 | 接口前置的优化方法、装置、电子设备及存储介质 |
CN110851128A (zh) * | 2019-11-04 | 2020-02-28 | 紫光云技术有限公司 | 一种基本功能的应用代码生成方法 |
CN110928548A (zh) * | 2019-11-14 | 2020-03-27 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据处理方法以及设备 |
CN110928548B (zh) * | 2019-11-14 | 2023-08-22 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据处理方法以及设备 |
CN111162977A (zh) * | 2019-12-20 | 2020-05-15 | 青岛聚好联科技有限公司 | 一种物联网终端接入云服务的方法及装置 |
CN113391811A (zh) * | 2020-03-13 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 函数编译方法、装置、电子设备及计算机可读存储介质 |
CN113391811B (zh) * | 2020-03-13 | 2023-11-03 | 抖音视界有限公司 | 函数编译方法、装置、电子设备及计算机可读存储介质 |
CN112181393A (zh) * | 2020-09-28 | 2021-01-05 | 中国建设银行股份有限公司 | 前后端代码生成方法、装置、计算机设备及存储介质 |
CN112181393B (zh) * | 2020-09-28 | 2023-12-26 | 中国建设银行股份有限公司 | 前后端代码生成方法、装置、计算机设备及存储介质 |
CN114385175A (zh) * | 2020-10-20 | 2022-04-22 | 武汉斗鱼鱼乐网络科技有限公司 | 一种代码生成方法、装置、电子设备及存储介质 |
CN113010157A (zh) * | 2021-03-08 | 2021-06-22 | 北京达佳互联信息技术有限公司 | 一种代码生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106648690B (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648690A (zh) | 一种代码自动生成方法及装置 | |
CN106325856B (zh) | 一种实现Elasticsearch Dsl规则可视化编辑和数据展现的方法与系统 | |
US9639516B2 (en) | System and method for express spreadsheet visualization for building information modeling | |
JP2018036868A (ja) | 会議支援システム、会議支援装置、及び会議支援方法 | |
US11126938B2 (en) | Targeted data element detection for crowd sourced projects with machine learning | |
CN109117131A (zh) | 代码生成方法及装置、存储介质及电子终端 | |
JP2020095764A (ja) | 情報入力方法、情報入力装置、及び情報入力システム | |
WO2022267310A1 (zh) | 软件开发的辅助处理方法、设备、存储介质及程序产品 | |
CN110955600A (zh) | 接口测试方法及装置 | |
CN103577165A (zh) | 一种表单生成方法和表单生成器 | |
CN102184119A (zh) | 一种应用于电子双板的教学资源管理系统 | |
KR20160048806A (ko) | 인증 문서를 자동으로 생성하는 기법 | |
JP6488417B1 (ja) | ワークショップ支援システムおよびワークショップ支援方法 | |
CN109408502A (zh) | 一种数据标准处理方法、装置及其存储介质 | |
CN111353758B (zh) | 流程变更方法及装置 | |
CN106982140B (zh) | 一种信息流仿真方法及系统 | |
JP5941399B2 (ja) | スケジュール管理装置及びスケジュール管理装置を備えたコンピュータ処理システム | |
CN104008042A (zh) | 一种ui自动化测试方法、系统和设备 | |
US20200042940A1 (en) | Interactive apparatus, control apparatus, interactive system, interactive method, and control method | |
CN111459460B (zh) | 一种业务数据处理方法及系统 | |
US9135232B2 (en) | Inputting information into an electronic form | |
US20140181783A1 (en) | Component integration by distribution of schema definition on heterogenous platforms | |
CN107018038A (zh) | 监控数据查询方法及服务器 | |
US11928627B2 (en) | Workflow manager | |
CN106909276B (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 |