[发明专利]基于Springboot的在线接口代码生成方法有效

专利信息
申请号: 202110807233.2 申请日: 2021-07-16
公开(公告)号: CN113419741B 公开(公告)日: 2022-05-27
发明(设计)人: 吴志雄;陈大耀 申请(专利权)人: 南威软件股份有限公司
主分类号: G06F8/41 分类号: G06F8/41;G06F9/445;G06F8/65;G06F9/54
代理公司: 福州元创专利商标代理有限公司 35100 代理人: 陈明鑫;蔡学俊
地址: 362018 福建省*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 springboot 在线 接口 代码 生成 方法
【权利要求书】:

1.一种基于Springboot的在线接口代码生成方法,其特征在于,提供基于Springboot的分布式微服务式系统,包括主控端与多个微服务客户端;其中,

主控端,用于源码生成,向多个微服务客户端分发源码并发起包括热更新的操作,同时接收各个微服务客户端的处理结果;

微服务客户端,用于接收源码、预编译检查代码是否编译成功,最终执行热更新重新加载Springboot 上下文,将从源码编译成功的Class加载至Spring的IoC中,注册成Spring的服务,以供调用;

该方法具体实现步骤如下:

步骤1、启动TCP连接服务:

主控端启动时自动启动TCP服务端口;

微服务客户端启动时自动连接主控端的TCP服务端口并向主控端注册自己的信息,为主控端及微服务客户端之间的RPC调用提供通信链路;

步骤2、主控端和微服务客户端建立TCP连接服务后,主控端进行源码生成:

在主控端根据代码模板生成通用类的源码或在主控端在线编写代码,主控端生成源码;

步骤3、源码分组:

主控端根据生成的源码的类别与微服务客户端的类别做分组,将属于同一个微服务客户端的代码打包;

步骤4、源码分发:

主控端将分组好的源码根据微服务的依赖关系,按顺序向微服务客户端发送分发源码的RPC请求,等待结果返回;

步骤5、微服务客户端收到分发源码的RPC请求时,将收到的源码数据送进自定义的ClassLoader进行编译,编译成功后得到Class对象,验证源码正确性,最终将源码缓存至内存中,并返回执行的结果给主控端;

步骤6、主控端将接收到所有的微服务客户端返回的分发源码的RPC请求结果,根据返回结果判断是否分发源码执行成功,若有一个失败,则流程中止,返回失败;若全部都成功则进行下一步操作;

步骤7、主控端按照源码模块要求的顺序,依次向微服务客户端发送热更新RPC请求,并等待结果返回;

步骤8、微服务客户端接收到热更新的RPC请求时,触发执行热更新功能模块,系统准备执行热更新;

步骤9、微服务客户端执行热更新,关闭Springboot 应用的上下文,注入进Spring的所有组件将被关闭,线程及线程池也将被关闭。

2.根据权利要求1所述的一种基于Springboot的在线接口代码生成方法,其特征在于,该方法还包括清除缓存步骤,即采用反射方式将静态类中的缓存数据全部清除,避免内存泄露。

3.根据权利要求2所述的一种基于Springboot的在线接口代码生成方法,其特征在于,所述清除缓存步骤具体实现如下:

步骤10、微服务客户端再检查当前所有的线程以确认需要被关闭线程,最终将找到的所有待关闭的线程执行销毁操作,释放资源;

步骤11、微服务客户端启动应用流程,将所有已下发的源码从缓存中写入到缓存文件中,以备冷启动时自动编译并加载所有代码;创建自定义的ClassLoader并设置为当前线程的ClassLoader,以便启动系统时接管jar包及Class文件的加载,根据规则分配其使用的ClassLoader,使得系统正常启动;

步骤12、使用当前自定义的ClassLoader从源码缓存中读取所有的源码,并编译成Class写到本地的路径下,以便ClassLoader能够正确加载该Class;

步骤13、启动Springboot 应用上下文,加载从源码编译的Class并以服务的方式注入进Spring容器中,系统的模块可以直接调用此代码;至此微服务客户端热更新完成,返回执行热更新的结果给主控端;

步骤14、主控端收到所有的微服务客户端热更新的结果,若有一个失败,则流程中止,返回失败,若全部都成功则 操作成功。

4.根据权利要求1所述的一种基于Springboot的在线接口代码生成方法,其特征在于,步骤1中,主控端可通过RPC调用微服务客户端;微服务客户端也可通过RPC调用主控端,主控端、微服务客户端双边的RPC调用共用一个TCP链路,以降低系统的部署难度。

5.根据权利要求1所述的一种基于Springboot的在线接口代码生成方法,其特征在于,步骤5中,ClassLoader是基于Groovy实现。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南威软件股份有限公司,未经南威软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110807233.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top