CN114115890A - 微服务开发方法及系统 - Google Patents
微服务开发方法及系统 Download PDFInfo
- Publication number
- CN114115890A CN114115890A CN202111266721.3A CN202111266721A CN114115890A CN 114115890 A CN114115890 A CN 114115890A CN 202111266721 A CN202111266721 A CN 202111266721A CN 114115890 A CN114115890 A CN 114115890A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- module
- code
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及微服务开发技术领域,公开了一种微服务开发方法及系统。微服务开发方法包括:制作目标微服务对应的微服务模板;创建所述目标微服务对应的业务模块;获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;配置所述目标微服务对应的容器部署工程;执行工程编译指令,以编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。本发明简化了开发人员的代码编写内容,使业务模块的开发更灵活便捷,降低了微服务时开发成本和维护成本。
Description
技术领域
本发明涉及微服务开发领域,尤其涉及一种微服务开发方法及系统。
背景技术
传统软件开发方法是通过设计数据库模型,搭建项目框架,然后结合实际业务需求,基于项目框架实现各层业务逻辑,包括前端、后台、前后端功能联调等。若存在变更,则需要重新进行所有开发流程。传统开发方法繁琐复杂,效率低下,且由于开发人员命名习惯和层次存在差异,代码质量不同,对项目影响大。
现有的开发平台在一定程度上解决了传统软件开发的繁琐问题,大部分功能可通过在线配置生成前后端代码,但仍需要手动创建子工程编写容器部署配置并进行编译打包部署启动等一系列重复工作。耗费大量人力成本,效率低下,而且不同的开发人员命名习惯不同,代码可读性差,不利于代码的维护。
发明内容
本发明的主要目的在于提供一种微服务开发方法及系统,旨在解决在线开发微服务存在开发成本高、开发效率低的技术问题。
本发明第一方面提供了一种微服务开发方法,包括:
制作目标微服务对应的微服务模板;
创建所述目标微服务对应的业务模块;
获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
配置所述目标微服务对应的容器部署工程;
执行工程编译指令,以编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
可选的,在本发明第一方面的第一种实现方式中,所述制作目标微服务对应的微服务模板包括:基础程序和容器部署模板;
所述基础程序包括用Maven构建的Java程序,所述容器部署模板包括Docker-Compose服务配置模板,所述Java程序包括主程序入口类、微服务配置文件和项目构建文件。
可选的,在本发明第一方面的第二种实现方式中,创建所述目标微服务对应的业务模块包括:
创建所述目标微服务对应的业务模块;
录入所述业务模块对应的表名、表单样式以及表单属性字段,并生成所述业务模块对应的业务表单;
将所述业务表单与预置数据库进行同步,数据库同步成功后,对所述业务表单进行功能测试;
若功能测试符合预期,则确认所述业务模块开发成功,否则重新编辑所述业务表单并进行功能测试,直至所述业务表单符合预期。
可选的,在本发明第一方面的第三种实现方式中,所述代码配置信息包括:业务模块名称、服务端口号、微服务模板名称。
可选的,在本发明第一方面的第四种实现方式中,所述配置所述目标微服务对应的容器部署工程包括:
获取所述目标微服务对应的编译打包配置、Docker-Compose对应的容器化部署配置并添加至所述目标微服务对应的容器部署工程中;
修改所述容器部署工程对应的容器化部署配置以及微服务启动脚本。
可选的,在本发明第一方面的第五种实现方式中,所述微服务开发方法还包括:
在执行工程编译指令时,将新增的微服务工程的可执行jar包和相应的Dockerfile文件拷贝至指定的目录下。
可选的,在本发明第一方面的第六种实现方式中,在所述编译所述容器部署工程,得到可执行微服务并启动运行之后,还包括:
创建所述目标微服务的功能菜单选项;
将所述业务模块的URI与所述功能菜单选项相关联;
基于所述功能菜单选项,对所述业务模块进行功能验证;
若验证通过,则确定所述目标微服务开发成功,否则返回修改所述业务模块并重新进行功能验证。
本发明第二方面提供了一种微服务开发系统,包括:
模板制作模块,用于制作目标微服务对应的微服务模板;
业务创建模块,用于创建所述目标微服务对应的业务模块;
代码获取模块,用于获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
代码生成模块,用于基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
工程配置模块,用于配置所述目标微服务对应的容器部署工程;
工程编译模块,用于编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
可选的,在本发明第二方面的第一种实现方式中,所述模板制作模块具体用于:制作基础程序和容器部署模板;
所述基础程序包括用Maven构建的Java程序,所述容器部署模板包括Docker-Compose服务配置模板,所述Java程序包括主程序入口类、微服务配置文件和项目构建文件。
可选的,在本发明第二方面的第二种实现方式中,所述业务创建模块包括:
模块创建单元,用于创建所述目标微服务对应的业务模块;
表单生成单元,用于录入所述业务模块对应的表名、表单样式以及表单属性字段,并生成所述业务模块对应的业务表单;
表单测试单元,用于将所述业务表单与预置数据库进行同步,数据库同步成功后,对所述业务表单进行功能测试;若功能测试符合预期,则确认所述业务模块开发成功,否则重新编辑所述业务表单并进行功能测试,直至所述业务表单符合预期。
可选的,在本发明第二方面的第三种实现方式中,所述代码获取模块中代码配置信息包括:业务模块名称、服务端口号、微服务模板名称。
可选的,在本发明第二方面的第四种实现方式中,所述工程配置模块包括:
工程配置单元:具体用于获取所述目标微服务对应的编译打包配置、Docker-Compose对应的容器化部署配置并添加至所述目标微服务对应的容器部署工程中;
工程修改单元:具体用于修改所述容器部署工程对应的容器化部署配置以及微服务启动脚本;
可选的,在本发明第二方面的第五种实现方式中,所述微服务开发系统还具体用于:
在执行工程编译指令时,将新增的微服务工程的可执行jar包和相应的Dockerfile文件拷贝至指定的目录下。
可选的,在本发明第二方面的第六种实现方式中,所述微服务开发系统还包括:
菜单创建模块,用于创建所述目标微服务的功能菜单选项;
业务关联模块,用于将所述业务模块的URI与所述功能菜单选项相关联;
业务功能验证模块,用于基于所述功能菜单选项,对所述业务模块进行功能验证;若验证通过,则确定所述目标微服务开发成功,否则返回修改所述业务模块并重新进行功能验证。
本发明提供的技术方案中,提供了一种微服务开发系统,通过制作微服务模板,创建对应的业务模块,并生成业务模块对应的微服务代码,配置容器部署工程,编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务。本发明通过制作微服务模板,在微服务模板基础上添加业务模块并进行容器化部署配置以简化开发人员的代码编写内容,使业务模块的开发更灵活便捷,解决在线开发微服务存在开发成本高、开发效率低的技术问题。
附图说明
图1为本发明实施例中微服务开发方法的第一个实施例示意图;
图2为本发明实施例中微服务开发方法的第二个实施例示意图;
图3为本发明实施例中微服务开发方法的第三个实施例示意图;
图4为本发明实施例中微服务开发方法的第四个实施例示意图;
图5为本发明实施例中微服务开发系统的一个实施例示意图;
图6为本发明实施例中微服务开发系统的另一个实施例示意图。
具体实施方式
本发明实施例提供了一种微服务开发方法及系统,通过制作微服务模板,创建对应的业务模块,并生成业务模块对应的微服务代码,配置容器部署工程,编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务。本发明通过制作微服务模板,在微服务模板基础上添加业务模块并进行容器化部署配置以简化开发人员的代码编写内容,使业务模块的开发更灵活便捷,解决在线开发微服务存在开发成本高、开发效率低的技术问题。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中微服务开发方法的第一个实施例包括:
101、制作目标微服务对应的微服务模板;
可以理解的是,本发明的执行主体可以为微服务开发装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,微服务通过把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,服务之间互相协调、互相配合,更灵活。每个服务的运行进程是独立的,并采用轻量级的通信机制互相沟通。目标微服务不限,即本轮开发中希望获得的微服务不限,包括但不限于物资管理、流程管理、业务管理等。
本实施例中,微服务模板用于作为微服务的生成基础,在微服务模板的基础上可以添加业务模块,从而构成完整的微服务,实现目标微服务的功能。
可选的,在一实施例中,上述步骤101进一步包括:基础程序和容器部署模板;
所述基础程序包括用Maven构建的Java程序,所述容器部署模板包括Docker-Compose服务配置模板,所述Java程序包括主程序入口类、微服务配置文件和项目构建文件。
本可选实施例中,容器是一个视图隔离、资源可限制、独立文件系统的进程集合。视图隔离就是能够看到部分进程以及具有独立的主机名等;资源可限制则是可以对于内存大小以及CPU使用个数等进行限制;容器具有一个独立的文件系统,因为使用的是系统的资源,所以在独立的文件系统内不需要具备内核相关的代码或者工具,只需要提供容器所需的二进制文件、配置文件以及依赖即可。只要容器运行时所需的文件集合都能够具备,那么这个容器就能够运行起来。
本可选实施例中,基础程序是微服务模板的程序部分,包括但不限于用Maven构建的Java程序。
本可选实施例中,容器部署模板是Docker-Compose服务配置模板,包括但不限于容器名称、依赖的容器组件、主机端口与容器端口映射、环境参数。
本可选实施例中,Maven是一款由Apache软件基金会开发的,用来管理项目的构建,生成报告和文档的Java项目管理工具。Maven统一集中管理好所有的依赖包,并且能够自动解决重复和冲突问题。
本可选实施例中,主程序入口类是通过注解标注在主程序上说明开发框架的主配置类别,然后通过其他相关注解把相应的功能引进来。注解包括但不限于@SpringBootApplication标注开发框架的主配置类为应用类,其他相关注解包括但不限于通过@EnableDiscoveryClient,相应功能为让注册中心能够发现并扫描到该服务。
本可选实施例中,微服务配置文件包含微服务模板所需的配置项,包括但不限于数据库的默认配置、配置中心的默认配置以及微服务模板对应的工程模板。
本可选实施例中,项目构建文件包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,包括但不限于Pom.xml构建文件。
本可选实施例中,Docker-Compose服务配置模板是容器管理工具软件的配置模板,Docker-Compose可以管理多个容器组成一个项目,包括但不限于多个容器之间的调用关系,启动/关闭这些容器的命令。
102、创建所述目标微服务对应的业务模块;
本实施例中,业务模块指将业务领域的对象元素进行细化,将业务操作划分为原子性功能,包括但不限于物资管理、业务办理、流程管理等。
本实施例中,创建方式包括但不限于创建业务模块的表单、录入业务模块的功能属性。
103、获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
本实施例中,业务代码指具体项目中设计业务逻辑的代码,是在框架下对项目进行实现的代码,包括但不限于表单生成的业务模块的代码。
本实施例中,代码配置信息包括但不限于模块名称、服务端口、选择的微服务模板。
本实施例中,业务代码的获取方式包括但不限于利用代码获取模块生成业务代码,根据表单录入信息填充业务代码框架生成业务代码。
104、基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
本实施例中,生成方式包括但不限于根据代码配置信息对业务代码和微服务模板代码的相应配置信息进行修改,将业务代码添加进微服务代码的模板中。
本实施例中,微服务代码包括但不限于微服务模板、代码配置信息、业务代码。
105、配置所述目标微服务对应的容器部署工程;
本实施例中,容器部署工程指将项目和项目的依赖包打包成带有启动指令的独立包,容器是装载独立包的与服务器隔离的空间,包括但不限于业务模块部分的容器部署,将业务模块容器化,打包业务模块的依赖包和启动指令到独立的一个或多个容器中。
106、执行工程编译指令,以编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
本实施例中,编译是程序运行前把程序编译成为机器语言的过程,编译后可直接被操作系统加载执行。
本实施例中,启动运行包括但不限于通过微服务模板和容器部署工程中的Docker-Compose的启动指令启动可执行的微服务的容器部分;通过启动脚本启动微服务。
本发明实施例中,提供了一种通过制作微服务模板,创建对应的业务模块,并生成业务模块对应的微服务代码,配置容器部署工程,编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务的开发方法。本发明通过制作微服务模板,在微服务模板基础上添加业务模块并进行容器化部署配置以简化开发人员的代码编写内容,使业务模块的开发更灵活便捷,解决在线开发微服务存在开发成本高、开发效率低的技术问题。
请参阅图2,本发明实施例中微服务开发方法的第二个实施例包括:
201、制作目标微服务对应的微服务模板;
202、创建所述目标微服务对应的业务模块;
203、录入所述业务模块对应的表名、表单样式以及表单属性字段,并生成所述业务模块对应的业务表单;
本实施例中,业务表单是负责数据采集功能,是提交数据的一切形式,支持简易地创建标签和问题、使用创建好的字段来输入数据,包括但不限于在线表单使用预置的业务功能属性字段来收集业务相关信息。
本实施例中,业务表单录入的是业务模块通过表单展示出的各种属性,包括但不限于业务模块的表名,是业务模块表单的名称;表单样式的风格主题;表单属性字段包括但不限于数据库属性、页面属性和外键。
本实施例中,表单样式包括但不限于一对一的主题模板、一对多的主题模板、列数为一的样式风格、列数为二的样式风格。
本实施例中,生成指将录入的业务模块对应的表名、表单样式以及表单属性字段信息打包,以表单的形式进行保存。
204、将所述业务表单与预置数据库进行同步,数据库同步成功后,对所述业务表单进行功能测试;
本实施例中,预置数据库包括但不限于业务表单内容、业务表单的存储地址、业务表单的备份。
本实施例中,功能测试是将业务表单体现的功能进行测试,观察是否实现预期的功能,并根据结果对表单的内容进行增删改,包括但不限于对物流管理业务表单进行功能测试,观察是否能实现物流查询的功能,若能实现则可进行下一步,若不能实现,则对表单进行修改。
本实施例中,数据库同步包括但不限于将表单存储至数据库的操作、使修改后的表单和数据库中的内容保持一致的操作。
205、若功能测试符合预期,则确认所述业务模块开发成功,否则重新编辑所述业务表单并进行功能测试,直至所述业务表单符合预期;
本实施例中,功能测试符合预期包括但不限于物流管理业务表单中,预期的功能为物流查询,进行功能测试后表单能实现物流查询功能则功能测试符合预期。
本实施例中,编辑指对业务表单录入的信息进行增删改,包括但不限于业务模块的表名,是业务模块表单的名称;表单样式的风格主题;表单属性字段包括但不限于数据库属性、页面属性和外键。
206、获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
可选的,在一实施例中,上述步骤206中代码配置信息进一步包括:业务模块名称、服务端口号、微服务模板名称。
本可选实施例中,业务模块名称包括但不限于物流管理、流程管理、客户管理。
本可选实施例中,服务端口号是程序向服务器发起连接时的请求端口。
本可选实施例中,微服务模板名称是根据微服务程序部分和容器部分的不同进行命名,用于区分不同的微服务模板。
207、基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
208、配置所述目标微服务对应的容器部署工程;
209、执行工程编译指令,以编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
本发明实施例中,在微服务模板基础上通过表单的录入和测试生成业务模块并进行代码生成和容器化部署配置以简化开发人员的代码编写过程,使业务模块的开发更直观便捷,解决了开发人员写代码习惯不同造成代码可读性差的问题。
请参阅图3,本发明实施例中微服务开发方法的第三个实施例包括:
301、制作目标微服务对应的微服务模板;
302、创建所述目标微服务对应的业务模块;
303、获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
304、基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
305、获取所述目标微服务对应的编译打包配置、Docker-Compose对应的容器化部署配置并添加至所述目标微服务对应的容器部署工程中;
本实施例中,编译打包配置是目标微服务工程的编译后的可执行jar包和构建文件Pom.xml中的相关配置。
本实施例中,镜像是一种轻量级、可执行的独立软件包,用来打包微服务运行环境和基于运行环境开发的微服务,包括但不限于运行微服务所需的所有内容,代码、运行时、库、环境变量和配置文件。
本实施例中,Docker-Compose对应的容器化部署配置是Dockerfile配置文件,用来写入每一层修改、安装、构建、操作命令的脚本,用这个脚本来构建、定制镜像,包括但不限于基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。
306、修改所述容器部署工程对应的容器化部署配置以及微服务启动脚本;
本实施例中,修改包括但不限于对容器部署工程对应的容器化部署配置、微服务启动脚本的模块名称、服务端口、微服务模板进行修改。
本实施例中,容器化部署配置指将业务模块进行容器化的操作,并为容器配置相应的镜像和执行指令,包括但不限于Dockerfile配置文件、构建文件、依赖包。
本实施例中,微服务启动脚本是启动微服务的脚本文件,包括但不限于Install.sh脚本。
本实施例中,打包指将容器化部署配置所需的构建文件、微服务启动脚本以及微服务代码打包成jar包,拷贝到业务模块目录下。
307、执行工程编译指令,以编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
本发明实施例中,给出了一种微服务的容器配置方法,将对应的编译打包配置以及容器化部署配置添加至容器部署工程中,并进行修改和添加启动脚本。本实施例通过配置容器部署工程,简化了开发人员的代码编写内容,更高效地利用资源和硬件,减少了人力成本和资源的消耗。
请参阅图4,本发明实施例中微服务开发方法的第四个实施例包括:
401、制作目标微服务对应的微服务模板;
402、创建所述目标微服务对应的业务模块;
403、获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
404、基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
405、配置所述目标微服务对应的容器部署工程;
406、执行工程编译指令,以编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行;
407、创建所述目标微服务的功能菜单选项;
本实施例中,功能菜单选项是以菜单的形式将功能条目一一列出,是在应用中的各个服务选项,包括但不限于主功能菜单选项为物流管理,下设物流查询、物流运输、物流存储等子功能菜单选项。
本实施例中,创建方式包括但不限于新增功能菜单选项,对功能菜单选项进行命名和排序以及菜单选项组件的配置。
408、将所述业务模块的URI与所述功能菜单选项相关联;
本实施例中,业务模块的URI是统一资源标志符(Uniform Resource Identifier,URI),表示的是Web上每一种可用的资源,如HTML文档、图像、视频片段、程序等都是由一个URI进行标识的。
本实施例中,关联的项目包括但不限于为功能菜单选项配置业务模块的URI。
409、基于所述功能菜单选项,对所述业务模块进行功能验证;
本实施例中,功能验证包括但不限于将功能菜单选项体现的功能进行测试和验证,观察是否实现预期的业务模块功能,并根据结果对业务模块进行增删改,包括但不限于对物流管理业务选项进行功能验证,观察是否能实现物流查询的功能,若能实现则微服务开发成功,若不能实现,则对业务模块进行修改。
410、若验证通过,则确定所述目标微服务开发成功,否则返回修改所述业务模块并重新进行功能验证。
本发明实施例中,在制作完成微服务后,创建与微服务关联的功能菜单选项并进行验证。本发明通过创建功能菜单选项,将微服务添加入菜单,使微服务功能得以在应用上直接通过功能菜单实现,使业务功能的开发更灵活便捷,便利了对应用进行功能的增删查改,解决在线开发微服务存在开发成本高、开发效率低的技术问题。
上面对本发明实施例中微服务开发方法进行了描述,下面对本发明实施例中微服务开发系统进行描述,请参阅图5,本发明实施例中微服务开发系统一个实施例包括:
模板制作模块501,用于制作目标微服务对应的微服务模板;
业务创建模块502,用于创建所述目标微服务对应的业务模块;
代码获取模块503,用于获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
代码生成模块504,用于基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
工程配置模块505,用于配置所述目标微服务对应的容器部署工程;
工程编译模块506,用于编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
本发明实施例给出一种微服务开发装置,装置用于制作微服务模板,创建对应的业务模块,并生成业务模块对应的微服务代码,配置容器部署工程,编译包含所述微服务代码的微服务工程以及所述容器部署工程,最终得到可执行微服务。本发明通过制作微服务模板,在微服务模板基础上添加业务模块并进行容器化部署配置以简化开发人员的代码编写内容,使业务模块的开发更灵活便捷,解决在线开发微服务存在开发成本高、开发效率低的技术问题。
请参阅图6,本发明实施例中微服务开发系统的另一个实施例包括:
模板制作模块501,用于制作目标微服务对应的微服务模板;
业务创建模块502,用于创建所述目标微服务对应的业务模块;
代码获取模块503,用于获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
代码生成模块504,用于基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
工程配置模块505,用于配置所述目标微服务对应的容器部署工程;
工程编译模块506,用于编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行;
菜单创建模块507,用于创建所述目标微服务的功能菜单选项;
业务关联模块508,用于将所述业务模块的URI与所述功能菜单选项相关联;
业务功能验证模块509,用于基于所述功能菜单选项,对所述业务模块进行功能验证;若验证通过,则确定所述目标微服务开发成功,否则返回修改所述业务模块并重新进行功能验证。
可选的,在一实施例中,模板制作模块501还可以具体用于:制作基础程序和容器部署模板;
所述基础程序包括用Maven构建的Java程序,所述容器部署模板包括Docker-Compose服务配置模板,所述Java程序包括主程序入口类、微服务配置文件和项目构建文件。
可选的,在一实施例中,业务创建模块502还可以具体用于:
模块创建单元5021,用于创建所述目标微服务对应的业务模块;
表单生成单元5022,用于录入所述业务模块对应的表名、表单样式以及表单属性字段,并生成所述业务模块对应的业务表单;
表单测试单元5023,用于将所述业务表单与预置数据库进行同步,数据库同步成功后,对所述业务表单进行功能测试;若功能测试符合预期,则确认所述业务模块开发成功,否则重新编辑所述业务表单并进行功能测试,直至所述业务表单符合预期。
可选的,在一实施例中,代码配置信息还可以包括:业务模块名称、服务端口号、微服务模板名称。
可选的,在一实施例中,工程配置模块505还可以包括:
工程配置单元5051:具体用于获取所述目标微服务对应的编译打包配置、Docker-Compose对应的容器化部署配置并添加至所述目标微服务对应的容器部署工程中;
工程修改单元5052:具体用于修改所述容器部署工程对应的容器化部署配置以及微服务启动脚本;
可选的,在一实施例中,微服务开发系统还包括:
在执行工程编译指令时,将新增的微服务工程的可执行jar包和相应的Dockerfile文件拷贝至指定的目录下。
本发明实施例为得到可执行的微服务,提供了一种微服务开发装置,装置用于制作微服务模板,创建对应的业务模块,并生成业务模块对应的微服务代码,配置容器部署工程,编译包含所述微服务代码的微服务工程以及所述容器部署工程,最终得到可执行微服务。本发明通过业务创建模块和工程配置模块,使业务模块的开发更直观便捷,以简化开发人员的代码编写内容,更高效地利用资源和硬件,减少了人力成本和资源的消耗。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种微服务开发方法,其特征在于,所述微服务开发方法包括:
制作目标微服务对应的微服务模板;
创建所述目标微服务对应的业务模块;
获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
配置所述目标微服务对应的容器部署工程;
执行工程编译指令,以编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
2.根据权利要求1所述的微服务开发方法,其特征在于,所述微服务模板包括:基础程序和容器部署模板;
所述基础程序包括用Maven构建的Java程序,所述容器部署模板包括Docker-Compose服务配置模板,所述Java程序包括主程序入口类、微服务配置文件和项目构建文件。
3.根据权利要求1所述的微服务开发方法,其特征在于,所述创建所述目标微服务对应的业务模块包括:
创建所述目标微服务对应的业务模块;
录入所述业务模块对应的表名、表单样式以及表单属性字段,并生成所述业务模块对应的业务表单;
将所述业务表单与预置数据库进行同步,数据库同步成功后,对所述业务表单进行功能测试;
若功能测试符合预期,则确认所述业务模块开发成功,否则重新编辑所述业务表单并进行功能测试,直至所述业务表单符合预期。
4.根据权利要求1所述的微服务开发方法,其特征在于,所述代码配置信息包括:业务模块名称、服务端口号、微服务模板名称。
5.根据权利要求1所述的微服务开发方法,其特征在于,所述配置所述目标微服务对应的容器部署工程包括:
获取所述目标微服务对应的编译打包配置、Docker-Compose对应的容器化部署配置并添加至所述目标微服务对应的容器部署工程中;
修改所述容器部署工程对应的容器化部署配置以及微服务启动脚本。
6.根据权利要求1所述的微服务开发方法,其特征在于,所述微服务开发方法还包括:
在执行工程编译指令时,将新增的微服务工程的可执行jar包和相应的Dockerfile文件拷贝至指定的目录下。
7.根据权利要求1-6中任一项所述的微服务开发方法,其特征在于,在所述编译所述容器部署工程,得到可执行微服务并启动运行之后,还包括:
创建所述目标微服务的功能菜单选项;
将所述业务模块的URI与所述功能菜单选项相关联;
基于所述功能菜单选项,对所述业务模块进行功能验证;
若验证通过,则确定所述目标微服务开发成功,否则返回修改所述业务模块并重新进行功能验证。
8.一种微服务开发系统,其特征在于,所述微服务开发系统包括:
模板制作模块,用于制作目标微服务对应的微服务模板;
业务创建模块,用于创建所述目标微服务对应的业务模块;
代码获取模块,用于获取所述业务模块的业务代码以及所述目标微服务的代码配置信息;
代码生成模块,用于基于所述微服务模板、所述业务代码以及所述代码配置信息,生成所述业务模块对应的微服务代码;
工程配置模块,用于配置所述目标微服务对应的容器部署工程;
工程编译模块,用于编译包含所述微服务代码的微服务工程以及所述容器部署工程,得到可执行微服务并启动运行。
9.根据权利要求8所述的微服务开发系统,其特征在于,所述业务创建模块包括:
模块创建单元,用于创建所述目标微服务对应的业务模块;
表单生成单元,用于录入所述业务模块对应的表名、表单样式以及表单属性字段,并生成所述业务模块对应的业务表单;
表单测试单元,用于将所述业务表单与预置数据库进行同步,数据库同步成功后,对所述业务表单进行功能测试;若功能测试符合预期,则确认所述业务模块开发成功,否则重新编辑所述业务表单并进行功能测试,直至所述业务表单符合预期。
10.根据权利要求8所述的微服务开发系统,其特征在于,所述微服务开发系统还包括:
菜单创建模块,用于创建所述目标微服务的功能菜单选项;
业务关联模块,用于将所述业务模块的URI与所述功能菜单选项相关联;
业务功能验证模块,用于基于所述功能菜单选项,对所述业务模块进行功能验证;若验证通过,则确定所述目标微服务开发成功,否则返回修改所述业务模块并重新进行功能验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111266721.3A CN114115890A (zh) | 2021-10-28 | 2021-10-28 | 微服务开发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111266721.3A CN114115890A (zh) | 2021-10-28 | 2021-10-28 | 微服务开发方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114115890A true CN114115890A (zh) | 2022-03-01 |
Family
ID=80377425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111266721.3A Pending CN114115890A (zh) | 2021-10-28 | 2021-10-28 | 微服务开发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114115890A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454391A (zh) * | 2022-11-11 | 2022-12-09 | 零氪科技(北京)有限公司 | 客户端、客户端构建方法、装置、电子设备及存储介质 |
-
2021
- 2021-10-28 CN CN202111266721.3A patent/CN114115890A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454391A (zh) * | 2022-11-11 | 2022-12-09 | 零氪科技(北京)有限公司 | 客户端、客户端构建方法、装置、电子设备及存储介质 |
CN115454391B (zh) * | 2022-11-11 | 2023-06-16 | 零氪科技(北京)有限公司 | 客户端、客户端构建方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8839107B2 (en) | Context based script generation | |
CN110912724B (zh) | 一种基于参数驱动的自动业务编排方法及装置 | |
CN104407973B (zh) | 一种自动化单元测试的实现方法及装置 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
US7366706B2 (en) | Method and apparatus for solution-template based deployment and management of an integration solution | |
US9021419B2 (en) | System and method for supporting intelligent design pattern automation | |
CN111198744A (zh) | 自动化应用程序容器化和镜像备份发布的方法 | |
CN101937336B (zh) | 软件资产打包和消费方法和系统 | |
CN113986226B (zh) | 一种基于qiankun和Web Component的微前端架构及其构建方法 | |
CN112965785A (zh) | 基于容器的微服务应用开发方法及开发平台 | |
CN112882700A (zh) | iOS应用程序构建方法及装置、电子设备及存储介质 | |
CN107885551A (zh) | 一种服务部署方法、装置、可读介质及存储控制器 | |
CN109324799A (zh) | 一种代码编译方法、计算机装置及计算机可读存储介质 | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
CN111506304A (zh) | 一种基于参数配置的流水线构建方法及系统 | |
CN113946323A (zh) | 基于微服务体系的在线开发方法、装置、设备及存储介质 | |
CN114115890A (zh) | 微服务开发方法及系统 | |
WO2023039741A1 (zh) | 基于微服务体系的在线开发方法、装置、设备及存储介质 | |
Liu et al. | Mv4ms: A spring cloud based framework for the co-deployment of multi-version microservices | |
CN114912897A (zh) | 工作流执行方法、工作流编排方法及电子设备 | |
CN108287720A (zh) | 软件编译方法、装置、设备及存储介质 | |
CN110806891B (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN117111907A (zh) | 一种软件开发系统 | |
Queirós | Kaang: a RESTful API generator for the modern web | |
CN114265595B (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 |