[发明专利]基于Springboot的在线接口代码生成方法有效
申请号: | 202110807233.2 | 申请日: | 2021-07-16 |
公开(公告)号: | CN113419741B | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 吴志雄;陈大耀 | 申请(专利权)人: | 南威软件股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/445;G06F8/65;G06F9/54 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 陈明鑫;蔡学俊 |
地址: | 362018 福建省*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 springboot 在线 接口 代码 生成 方法 | ||
本发明涉及一种基于Springboot的在线接口代码生成方法。提供基于SpringBoot的分布式微服务式系统,包括主控端与多个微服务客户端;其中,主控端,用于源码生成,向多个微服务客户端分发源码并发起包括热更新的操作,同时接收各个微服务客户端的处理结果;微服务客户端,用于接收源码、预编译检查代码是否编译成功,最终执行热更新重新加载SpringBoot上下文,将从源码编译成功的Class加载至Spring的IoC中,注册成Spring的服务,以供调用。本发明在微服务分布式系统的环境下,按照预制的代码模块,即可快速生成源码并发步,无需要重新开发、测试并部署的过程;并且热更新支持分布式微服务系统,程序只重新SpringBoot应用上下文,进程并未重启,加快部署速度。
技术领域
本发明涉及数据中心开放服务中的通用接口代码生成及热更新技术领域,特别是一种基于Springboot的在线接口代码生成方法。
背景技术
在数据中心开放服务中,对数据中心变更的接口是在开发人员开发完成后,经测试、打包后发布,流程比较长。特别是开发一些通用的接口时,比较耗时耗力。
现有的热更新技术如devtool是基于单个JVM的进程的,由IDE将源码编译成.class后进行热加载,主要用于加速开发,减少重复重启JVM进程的时间。
发明内容
本发明的目的在于提供一种基于Springboot的在线接口代码生成方法,在微服务分布式系统的环境下,按照预制的代码模块,即可快速生成源码并发步,无需要重新开发、测试并部署的过程;并且热更新支持分布式微服务系统,程序只重新SpringBoot应用上下文,进程并未重启,加快部署速度。
为实现上述目的,本发明的技术方案是:一种基于Springboot的在线接口代码生成方法,提供基于SpringBoot的分布式微服务式系统,包括主控端与多个微服务客户端;其中,
主控端,用于源码生成,向多个微服务客户端分发源码并发起包括热更新的操作,同时接收各个微服务客户端的处理结果;
微服务客户端,用于接收源码、预编译检查代码是否编译成功,最终执行热更新重新加载SpringBoot上下文,将从源码编译成功的Class加载至Spring的IoC中,注册成Spring的服务,以供调用。
在本发明一实施例中,该方法具体实现步骤如下:
步骤1、启动TCP连接服务:
主控端启动时自动启动TCP服务端口;
微服务客户端启动时自动连接主控端的TCP服务端口并向主控端注册自己的信息,为主控端及微服务客户端之间的RPC调用提供通信链路;
步骤2、主控端和微服务客户端建立TCP连接服务后,主控端进行源码生成:
在主控端根据代码模板生成通用类的源码或在主控端在线编写代码,主控端生成源码;
步骤3、源码分组:
主控端根据生成的源码的类别与微服务客户端的类别做分组,将属于同一个微服务客户端的代码打包;
步骤4、源码分发:
主控端将分组好的源码根据微服务的依赖关系,按顺序向微服务客户端发送分发源码的RPC请求,等待结果返回;
步骤5、微服务客户端收到分发源码的RPC请求时,将收到的源码数据送进自定义的ClassLoader进行编译,编译成功后得到class对象,验证源码正确性,最终将源码缓存至内存中,并返回执行的结果给主控端;
步骤6、主控端将接收到所有的微服务客户端返回的分发源码的RPC请求结果,根据返回结果判断是否分发源码执行成功,若有一个失败,则流程中止,返回失败;若全部都成功则进行下一步操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南威软件股份有限公司,未经南威软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110807233.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于分块并行的目标检测方法
- 下一篇:一种爬管机器人