System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Groovy逻辑模块的热部署实施方法和装置制造方法及图纸_技高网

一种基于Groovy逻辑模块的热部署实施方法和装置制造方法及图纸

技术编号:40604903 阅读:3 留言:0更新日期:2024-03-12 22:10
本说明书实施例提供了一种基于Groovy逻辑模块的热部署实施方法和装置,其中所述Groovy逻辑模块中逻辑为业务系统逻辑的部分逻辑,所述方法包括:将逻辑模块中的逻辑加载至SpringModule中;判断逻辑模块是否仅提供脚本;若是,则将脚本初始化成可运行对象;若否,则:将逻辑模块初始化,并分配相应独立的ClassLoader后初始化,并分配相应独立的ApplicationContext;扫描逻辑模块中的可运行类,通过ApplicationContext对可运行类实例化成可运行对象;缓存可运行对象,完成逻辑模块的初始化。本说明书实施例能够实现对某个具体逻辑的热部署,而不影响业务系统整体的稳定性。

【技术实现步骤摘要】

本说明书实施例涉及热部署领域,特别地,涉及一种基于groovy逻辑模块的热部署实施方法和装置。


技术介绍

1、热部署是指在应用正在运行的时候升级软件,却不需要重新启动应用服务,常用于风险检查、结算规则、活动规则等。groovy是用于java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。

2、现有技术中主要存在的热部署方法是针对整个应用服务的热部署,针对整个服务的热部署会使得整个服务发生重载,会导致不需要进行更新的业务发生不可预知的异常,影响业务系统整体的稳定性。

3、因此现在亟需一种基于groovy逻辑模块的热部署实施方法,能够实现对某个具体逻辑的热部署,而不影响业务系统整体的稳定性。


技术实现思路

1、本说明书实施例的目的在于提供一种基于groovy逻辑模块的热部署实施方法和装置,以实现对某个具体逻辑的热部署,而不影响业务系统整体的稳定性。

2、为达到上述目的,一方面,本说明书实施例提供了一种基于groovy逻辑模块的热部署实施方法,所述groovy逻辑模块中的逻辑属于业务系统逻辑的部分逻辑,所述方法包括:

3、将groovy逻辑模块中的逻辑加载至springmodule中;

4、判断所述groovy逻辑模块是否仅提供groovy脚本;

5、若是,则将所述groovy脚本初始化成可运行对象;

6、若否,则:

7、将所述groovy逻辑模块初始化,并分配相应独立的classloader;

8、将所述独立的classloader初始化,并分配相应独立的applicationcontext;

9、扫描所述groovy逻辑模块中的可运行类,通过所述applicationcontext对所述可运行类实例化成可运行对象;

10、缓存所述可运行对象,完成所述groovy逻辑模块的初始化;

11、根据执行命令执行所述groovy逻辑模块中的逻辑;

12、根据销毁命令销毁所述groovy逻辑模块。

13、优选的,所述根据执行命令执行所述groovy逻辑模块中的逻辑进一步包括:

14、获取所述groovy逻辑模块对应的可运行对象;

15、判断所述groovy逻辑模块是否仅提供groovy脚本;

16、若是,则通过所述可运行对象执行所述groovy逻辑模块中的逻辑;

17、若否,则:

18、将所述groovy逻辑模块对应的classloader设置为当前线程的上下文classloader;

19、通过所述可运行对象执行所述groovy逻辑模块中的逻辑;

20、将当前线程的上下文classloader恢复为初始上下文classloader。

21、优选的,所述根据销毁命令销毁所述groovy逻辑模块进一步包括:

22、将所述springmodule由缓存中移除;

23、判断所述groovy逻辑模块是否仅提供groovy脚本;

24、若是,则销毁所述可运行对象;

25、若否,则:

26、销毁所述可运行对象;

27、销毁所述可运行对象对应的classloader和applicationcontext。

28、优选的,还包括:

29、设置与所述groovy逻辑模块对应的动态逻辑接口;

30、所述业务系统中的其他模块通过所述动态逻辑接口调用所述groovy逻辑模块的功能。

31、优选的,所述groovy逻辑模块中的逻辑提供方式包括:上传特定格式的压缩包、提供groovy脚本以及同时提供groovy脚本和maven依赖。

32、优选的,还包括:

33、所述groovy逻辑模块接收用于测试的输入参数;

34、所述groovy逻辑模块根据所述输入参数,执行所述groovy逻辑模块中的逻辑进行测试,根据测试流程进行日志回写。

35、另一方面,本说明书实施例提供了一种基于groovy逻辑模块的热部署实施装置,所述groovy逻辑模块中的逻辑属于业务系统逻辑的部分逻辑,所述装置包括:

36、加载模块,用于将groovy逻辑模块中的逻辑加载至springmodule中;

37、判断模块,用于判断所述groovy逻辑模块是否仅提供groovy脚本;

38、若是,则将所述groovy脚本初始化成可运行对象;

39、若否,则:

40、将所述groovy逻辑模块初始化,并分配相应独立的classloader;

41、将所述独立的classloader初始化,并分配相应独立的applicationcontext;

42、扫描所述groovy逻辑模块中的可运行类,通过所述applicationcontext对所述可运行类实例化成可运行对象;

43、缓存模块,用于缓存所述可运行对象,完成所述groovy逻辑模块的初始化;

44、执行模块,用于根据执行命令执行所述groovy逻辑模块中的逻辑;

45、销毁模块,用于根据销毁命令销毁所述groovy逻辑模块。

46、又一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述任意一项所述方法的指令。

47、又一方面,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述任意一项所述方法的指令。

48、由以上本说明书实施例提供的技术方案可见,本说明书实施例运用classloader、applicationcontext这两项技术,以实现在执行groovy脚本时,使用groovy逻辑模块自身的三方依赖、使用公用spring bean(spring容器管理的对象,公用spring bean是指该对象为公用java类的实例),但是又能避免组件之间的spring bean(spring容器管理的对象,组件之间的spring bean是指该对象为组件之间java类的实例)、三方依赖的冲突,对相应的groovy逻辑模块进行热部署。

49、为让本说明书的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

本文档来自技高网...

【技术保护点】

1.一种基于Groovy逻辑模块的热部署实施方法,其特征在于,所述Groovy逻辑模块中的逻辑属于业务系统逻辑的部分逻辑,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据执行命令执行所述Groovy逻辑模块中的逻辑进一步包括:

3.根据权利要求1所述的方法,其特征在于,所述根据销毁命令销毁所述Groovy逻辑模块进一步包括:

4.根据权利要求1所述的方法,其特征在于,还包括:

5.根据权利要求1所述的方法,其特征在于,所述Groovy逻辑模块中的逻辑提供方式包括:上传特定格式的压缩包、提供Groovy脚本以及同时提供Groovy脚本和Maven依赖。

6.根据权利要求1所述的方法,其特征在于,还包括:

7.一种基于Groovy逻辑模块的热部署实施装置,其特征在于,所述Groovy逻辑模块中的逻辑属于业务系统逻辑的部分逻辑,所述装置包括:

8.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-6任意一项所述方法的指令。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-6任意一项所述方法的指令。

10.一种计算机程序产品,其特征在于,所述计算机程序产品被计算机设备的处理器运行时,执行根据权利要求1-6任意一项所述方法的指令。

...

【技术特征摘要】

1.一种基于groovy逻辑模块的热部署实施方法,其特征在于,所述groovy逻辑模块中的逻辑属于业务系统逻辑的部分逻辑,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据执行命令执行所述groovy逻辑模块中的逻辑进一步包括:

3.根据权利要求1所述的方法,其特征在于,所述根据销毁命令销毁所述groovy逻辑模块进一步包括:

4.根据权利要求1所述的方法,其特征在于,还包括:

5.根据权利要求1所述的方法,其特征在于,所述groovy逻辑模块中的逻辑提供方式包括:上传特定格式的压缩包、提供groovy脚本以及同时提供groovy脚本和maven依赖。

6.根据权利要求1所述的方法...

【专利技术属性】
技术研发人员:金明宇辛明昊关军浦肖凯罗超华
申请(专利权)人:北京量子之歌科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1