CN111221522A - 一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法 - Google Patents
一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法 Download PDFInfo
- Publication number
- CN111221522A CN111221522A CN202010029848.2A CN202010029848A CN111221522A CN 111221522 A CN111221522 A CN 111221522A CN 202010029848 A CN202010029848 A CN 202010029848A CN 111221522 A CN111221522 A CN 111221522A
- Authority
- CN
- China
- Prior art keywords
- code
- selecting
- field
- code generation
- template
- 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.)
- Withdrawn
Links
- 238000011161 development Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000000926 separation method Methods 0.000 title claims abstract description 23
- 238000013499 data model Methods 0.000 claims abstract description 22
- 238000003860 storage Methods 0.000 claims abstract description 4
- 241000208340 Araliaceae Species 0.000 claims description 4
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 4
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 4
- 235000008434 ginseng Nutrition 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000004904 shortening Methods 0.000 abstract description 2
- 238000007792 addition Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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
- G06F8/33—Intelligent editors
Abstract
本发明公开了一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,属于代码生成技术领域,步骤如下:新增自定义代码模板和平台组件;新增数据模型,包括:字段名、类型、长度;选择数据模型,创建页面,选择页面相应的代码模板,选择需展示的字段,选择操作按钮并绑定相应的请求;选择数据库类型、源代码保存路径,填写菜单信息,选择步骤2中的数据模型,自动生成源代码。本发明提供的代码生成方法,使用灵活,方便扩展,不依赖外部的数据库,代码生成工具生成源代码较全,用户可按需生成自己想要的代码,从而提升了开发效率,缩短了软件开发周期,降低了软件成本。
Description
技术领域
本发明涉及一种代码生成方法,特别是涉及一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,属于代码生成技术领域。
背景技术
随着敏捷开发、持续交付、DevOps理论的发展和实践,微服务架构成为了流行,而与之相伴的前后端分离开发也正在成为一种趋势。在前后台分离开发中,后端工程师负责业务逻辑实现,前端工程师负责数据的展示,人员根据专业化技能细分后,如何提高软件的开发效率,降低软件开发的成本,缩短软件的开发周期,变成了软件公司关注的焦点。
目前,在前后端分离开发模式下,会构建相应的基础平台作为构建业务的脚手架。基础平台虽然已尽可能的做到了代码复用和能力抽取,但面对复杂多变的需求,还是存在一定的局限性:一、无法根据数据库或数据模型自动生成业务对象的前后端全部源代码;二、针对不同的功能,所含操作是不一样的,目前无法按需生成源代码;三、生成源代码时所需组件及版本,用户无法自行选择。
发明内容
本发明的主要目的是解决现有技术中代码生成工具生成源代码不全和用户无法自定义生成策略的问题,而提供一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法。
本发明的目的可以通过采用如下技术方案达到:
一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,步骤如下:
步骤1:新增自定义代码模板和平台组件;
步骤2:新增数据模型,包括:字段名、类型、长度;
步骤3:选择数据模型,创建页面,选择页面相应的代码模板,选择需展示的字段,选择操作按钮并绑定相应的请求;
步骤4:选择数据库类型、源代码保存路径,填写菜单信息,选择步骤2中的数据模型,自动生成源代码。
进一步的,在步骤1中,所述自定义代码模板分前端代码模板、后端代码模板,前者比如有列表模板、Form表单模板,后者比如有接口类模板、实现类模板;所述平台组件为可选项,可对一些常用功能的封装形成组件,比如文件上传、对象选择器、图片裁剪等。
进一步的,在步骤2中,所述数据模型用于生成数据库信息,包括数据库建表语句和别名。
进一步的,在步骤3中,所述创建页面,包括名称、访问标识和类型;所述选择需展示的字段操作为在列表页选择需展示的字段及先后顺序,设置可排序字段;所述选择操作按钮并绑定相应的请求操作为根据功能选择相应的按钮,并设置按钮触发的请求。
进一步的,所述类型为列表页、Form表单页。
进一步的,所述Form表单页选择字段用于录入,同时可设置字段的必填、格式。
进一步的,所述请求可以指向其他创建的页面,也可以是后台的接口,也可以是开发平台具备的组件,如文件上传、对象选择器等。
进一步的,在步骤3中,根据页面配置的字段,利用自定义的代码模板生成前后端分离架构下的前端代码和后端代码,并保存为文件到指定路径下。
进一步的,所述前后端代码交互,后端接口的入参和出参遵循统一JSON格式,示意如下:
入参:
{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"};
出参:
{"code":"10000","msg":"Success","data":
[{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"},
{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"},
{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"}]}。
进一步的,在步骤4中,所述选择步骤2中的数据模型生成相应数据库类型的建表脚本和POJO类。
本发明的有益技术效果:
本发明提供的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,通过自定义模板、组件、数据模型和规则使用,用户可按需生成自己想要的代码,代码生成工具生成源代码较全,从而提升了开发效率,缩短了软件开发周期,降低了软件成本。
附图说明
图1为本发明用于前后台分离架构代码自动生成方法的流程图;
图2为本发明用于前后台分离架构代码自动生成方法的子流程图。
具体实施方式
为使本领域技术人员更加清楚和明确本发明的技术方案,下面对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例:
如图1,根据本发明的可用于前后端分离架构的代码自动生成方法具体包括:
步骤步骤1:自定义代码模板和平台组件;
自定义代码模板包括:(1)自定义前台源代码模板,其例如包括List列表、Form表单代码模板;(2)自定义后台源代码模板,其例如包括新增、修改、删除、查询、详情的Controller、Service、Dao、Junit单元测试代码模板,通过自定义代码模板,可以自动生成用户需要的源代码。
步骤步骤2:新增数据模型;
数据模型对于数据库信息,用于生成数据库建表语句和POJO类,POJO类包含字段的别名主要用于生成新增、修改、删除、查询、详情页面各属性的名称;通过属性名称,将数据库表结构字段与该属性的实际内容做对应。
步骤步骤3:选择数据模型,创建页面,选择页面相应的代码模板,选择需展示的字段,选择操作按钮并绑定相应的请求;
创建页面,比如按列表页、新增页、修改页、详情页创建,并选择相应的代码模板,页面必须有唯一标识,前端根据标识自动路由到页面,后端提供相同标识的接口给前端调用;
选择需展示的字段,来自步骤2中创建的数据模型中的别名,比如列表页要放在展示的字段:nickname、age、ctime,可设置按ctime降序排列;再比如新增页面,放要提交的信息字段:nickname、age,可设置nickname只允许字母数字,长度6~20,age必须为数字,且范围为1~200;
选择操作按钮并绑定相应的请求,比如列表页有新增按钮,需设定新增的标识;根据标识前端会自动路由到新增页面,再由新增页面去请求后端接口。
步骤步骤4:选择数据库类型、源代码保存路径,填写菜单信息,选择步骤2中的数据模型,自动生成源代码;
数据库类型,包括Oracle、Mysq1、SQLServer、Sybase、Db2等;
菜单信息,主要包括菜单名、菜单标识、访问URL、上级菜单标识,用于生成系统功能菜单。
代码自动生成如图2所示,具体描述如下:
1、读取步骤2中的数据模型数据,根据步骤4中选择的数据库类型生成建表脚本和用于页面属性和数据库字段映射的POJO类;
2、逐个读取步骤3中创建的页面,获取步骤1中的自定义模板,按设置组织步骤3中创建的别名和组件按钮(JS方法和路由数据),生成源代码;
3、把源代码作为文件存储步骤4中设定的目录下;
4、步骤4中根据菜单信息生成功能菜单的SQL,菜单定义保存在数据库。
在本实施例中,结合图1和图2所示,通过自定义模板、组件、数据模型和规则,采用本发明提供的代码生成方法,使用灵活,方便扩展,不依赖外部的数据库,代码生成工具生成源代码较全,用户可按需生成自己想要的代码,从而提升了开发效率,缩短了软件开发周期,降低了软件成本。
以上所述,仅为本发明进一步的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所公开的范围内,根据本发明的技术方案及其构思加以等同替换或改变,都属于本发明的保护范围。
Claims (10)
1.一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,步骤如下:
步骤1:新增自定义代码模板和平台组件;
步骤2:新增数据模型,包括:字段名、类型、长度;
步骤3:选择数据模型,创建页面,选择页面相应的代码模板,选择需展示的字段,选择操作按钮并绑定相应的请求;
步骤4:选择数据库类型、源代码保存路径,填写菜单信息,选择步骤2中的数据模型,自动生成源代码。
2.如权利要求1所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,在步骤1中,所述自定义代码模板分前端代码模板、后端代码模板,前者比如有列表模板、Form表单模板,后者比如有接口类模板、实现类模板;所述平台组件为可选项,可对一些常用功能的封装形成组件,比如文件上传、对象选择器、图片裁剪等。
3.如权利要求1所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,在步骤2中,所述数据模型用于生成数据库信息,包括数据库建表语句和别名。
4.如权利要求1所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,在步骤3中,所述创建页面,包括名称、访问标识和类型;所述选择需展示的字段操作为在列表页选择需展示的字段及先后顺序,设置可排序字段;所述选择操作按钮并绑定相应的请求操作为根据功能选择相应的按钮,并设置按钮触发的请求。
5.如权利要求4述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,所述类型为列表页、Form表单页。
6.如权利要求5所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,所述Form表单页选择字段用于录入,同时可设置字段的必填、格式。
7.如权利要求4所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,所述请求可以指向其他创建的页面,也可以是后台的接口,也可以是开发平台具备的组件,如文件上传、对象选择器等。
8.如权利要求1所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,在步骤3中,根据页面配置的字段,利用自定义的代码模板生成前后端分离架构下的前端代码和后端代码,并保存为文件到指定路径下。
9.如权利要求8所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,所述前后端代码交互,后端接口的入参和出参遵循统一JSON格式,示意如下:
入参:
{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"};
出参:
{"code":"10000","msg":"Success","data":
[{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"},
{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"},
{"字段别名1":"value1值","字段别名2":"value2值","字段别名3":"value3值"}]}。
10.如权利要求1所述的一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法,其特征在于,在步骤4中,所述选择步骤2中的数据模型生成相应数据库类型的建表脚本和POJO类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010029848.2A CN111221522A (zh) | 2020-01-13 | 2020-01-13 | 一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010029848.2A CN111221522A (zh) | 2020-01-13 | 2020-01-13 | 一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111221522A true CN111221522A (zh) | 2020-06-02 |
Family
ID=70810202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010029848.2A Withdrawn CN111221522A (zh) | 2020-01-13 | 2020-01-13 | 一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221522A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666072A (zh) * | 2020-06-09 | 2020-09-15 | 南京及物智能技术有限公司 | 一种软件代码及文档机器人方法 |
CN111708529A (zh) * | 2020-06-23 | 2020-09-25 | 浪潮云信息技术股份公司 | 一种基于angular通过拖拽生成表单的实现方法 |
CN111930380A (zh) * | 2020-08-13 | 2020-11-13 | 四川长虹电器股份有限公司 | 一种可动态定义的自描述性前端交互实现方法 |
CN112035093A (zh) * | 2020-08-24 | 2020-12-04 | 北京博皓科技有限公司 | 一种能够快速安全和灵活生产软件的程序框架 |
CN113434133A (zh) * | 2021-08-27 | 2021-09-24 | 深圳市信润富联数字科技有限公司 | 应用搭建方法、装置、设备及计算机可读存储介质 |
CN113535166A (zh) * | 2021-06-22 | 2021-10-22 | 浙江浙大中控信息技术有限公司 | 一种模块化页面生成方法 |
CN113590102A (zh) * | 2021-09-28 | 2021-11-02 | 北京宇信科技集团股份有限公司 | 一种零代码快速软件开发方法、系统、介质和设备 |
CN114579112A (zh) * | 2022-02-25 | 2022-06-03 | 北京圣博润高新技术股份有限公司 | 辅助系统开发的方法、装置、设备及存储介质 |
CN115221178A (zh) * | 2022-08-10 | 2022-10-21 | 北京国电通网络技术有限公司 | 数据表绑定方法、装置、电子设备和计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092589A (zh) * | 2011-11-03 | 2013-05-08 | 浙江省公众信息产业有限公司 | 一种基于ssh框架的代码自动生成方法 |
CN106325833A (zh) * | 2015-06-18 | 2017-01-11 | 中国石油化工股份有限公司 | 一种用于企业信息管理的代码生成方法 |
CN107273116A (zh) * | 2017-05-22 | 2017-10-20 | 互联天下科技发展(深圳)有限公司 | 采用基于框架的代码生成工具生产代码的方法 |
CN107729003A (zh) * | 2017-11-20 | 2018-02-23 | 江苏神州信源系统工程有限公司 | 代码的自动生成方法、装置及电子设备 |
CN109634593A (zh) * | 2018-04-17 | 2019-04-16 | 广东电网有限责任公司 | 一种代码自动生成方法 |
-
2020
- 2020-01-13 CN CN202010029848.2A patent/CN111221522A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092589A (zh) * | 2011-11-03 | 2013-05-08 | 浙江省公众信息产业有限公司 | 一种基于ssh框架的代码自动生成方法 |
CN106325833A (zh) * | 2015-06-18 | 2017-01-11 | 中国石油化工股份有限公司 | 一种用于企业信息管理的代码生成方法 |
CN107273116A (zh) * | 2017-05-22 | 2017-10-20 | 互联天下科技发展(深圳)有限公司 | 采用基于框架的代码生成工具生产代码的方法 |
CN107729003A (zh) * | 2017-11-20 | 2018-02-23 | 江苏神州信源系统工程有限公司 | 代码的自动生成方法、装置及电子设备 |
CN109634593A (zh) * | 2018-04-17 | 2019-04-16 | 广东电网有限责任公司 | 一种代码自动生成方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666072A (zh) * | 2020-06-09 | 2020-09-15 | 南京及物智能技术有限公司 | 一种软件代码及文档机器人方法 |
CN111708529A (zh) * | 2020-06-23 | 2020-09-25 | 浪潮云信息技术股份公司 | 一种基于angular通过拖拽生成表单的实现方法 |
CN111708529B (zh) * | 2020-06-23 | 2023-06-16 | 浪潮云信息技术股份公司 | 一种基于angular通过拖拽生成表单的实现方法 |
CN111930380B (zh) * | 2020-08-13 | 2022-02-01 | 四川长虹电器股份有限公司 | 一种可动态定义的自描述性前端交互实现方法 |
CN111930380A (zh) * | 2020-08-13 | 2020-11-13 | 四川长虹电器股份有限公司 | 一种可动态定义的自描述性前端交互实现方法 |
CN112035093A (zh) * | 2020-08-24 | 2020-12-04 | 北京博皓科技有限公司 | 一种能够快速安全和灵活生产软件的程序框架 |
CN113535166A (zh) * | 2021-06-22 | 2021-10-22 | 浙江浙大中控信息技术有限公司 | 一种模块化页面生成方法 |
CN113535166B (zh) * | 2021-06-22 | 2023-10-13 | 浙江中控信息产业股份有限公司 | 一种模块化页面生成方法 |
CN113434133A (zh) * | 2021-08-27 | 2021-09-24 | 深圳市信润富联数字科技有限公司 | 应用搭建方法、装置、设备及计算机可读存储介质 |
CN113434133B (zh) * | 2021-08-27 | 2022-02-15 | 深圳市信润富联数字科技有限公司 | 应用搭建方法、装置、设备及计算机可读存储介质 |
CN113590102A (zh) * | 2021-09-28 | 2021-11-02 | 北京宇信科技集团股份有限公司 | 一种零代码快速软件开发方法、系统、介质和设备 |
CN113590102B (zh) * | 2021-09-28 | 2021-12-24 | 北京宇信科技集团股份有限公司 | 一种零代码快速软件开发方法、系统、介质和设备 |
CN114579112A (zh) * | 2022-02-25 | 2022-06-03 | 北京圣博润高新技术股份有限公司 | 辅助系统开发的方法、装置、设备及存储介质 |
CN114579112B (zh) * | 2022-02-25 | 2023-10-20 | 北京圣博润高新技术股份有限公司 | 辅助系统开发的方法、装置、设备及存储介质 |
CN115221178A (zh) * | 2022-08-10 | 2022-10-21 | 北京国电通网络技术有限公司 | 数据表绑定方法、装置、电子设备和计算机可读介质 |
CN115221178B (zh) * | 2022-08-10 | 2023-07-14 | 北京国电通网络技术有限公司 | 数据表绑定方法、装置、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111221522A (zh) | 一种面向政府集约化应用开发的前后端分离架构的自动代码生成方法 | |
CN102207872B (zh) | 按照用户需求定制Web UI控件的方法和系统 | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN113032633B (zh) | 一种利用引用数据项自定义表格的方法 | |
CN111708516B (zh) | 一种网上web应用定制开发系统 | |
CN107783949A (zh) | 一种ppt文档的处理方法和装置 | |
CN110705237A (zh) | 文档的自动生成方法、数据处理设备及存储介质 | |
CN109582302A (zh) | 项目创建系统及自动化项目创建方法 | |
CN116401407A (zh) | 思维导图的节点属性配置方法、装置、设备和存储介质 | |
CN111046640A (zh) | 证明文件动态生成方法及装置 | |
CN113703755A (zh) | 代码生成方法及代码生成装置 | |
CN111325012A (zh) | word报表生成方法与系统 | |
CN114895875B (zh) | 一种零代码可视化信息系统元数据的生产应用方法及系统 | |
CN114979251B (zh) | 一种跨系统协同服务异构数据交换系统 | |
CN115495452A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110995806B (zh) | 一种资源状态转换方法、装置、设备及存储介质 | |
CN114385672A (zh) | 信息处理方法及装置、电子设备及存储介质 | |
CN110633459B (zh) | 数据报表的自动生成方法及系统、计算机可读存储介质 | |
CN114518881A (zh) | 一种页面生成方法、系统及存储介质 | |
CN113822025A (zh) | 办公文件自动生成方法、装置、设备及存储介质 | |
CN111506644B (zh) | 一种应用数据处理方法、装置和电子设备 | |
CN111381864A (zh) | 一种软件系统的配置方法及装置 | |
CN113407164B (zh) | 一种基于思维导图和树状结构技术软件代码生成方法及系统 | |
CN117539450B (zh) | 一种基于wps加载项的代码生成方法 | |
CN107729013B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200602 |