动态修改业务数据逻辑方法、系统、计算机设备及介质技术方案

技术编号:31700792 阅读:20 留言:0更新日期:2022-01-01 11:01
本发明专利技术提供的动态修改业务数据逻辑方法、系统、计算机设备以及介质,其中,方法步骤包括:获取文件包,标记所述文件包中的类别以及所述类别实例,确定所述实例的第一业务逻辑;编译所述文件包中的类别得到标记类文件,编译所述第一业务逻辑得到定义类文件;建立所述标记类文件与所述定义类文件的关联关系;扫描所述定义类文件,根据所述关联关系以及第一代理接口的第二业务逻辑替换所述第一业务逻辑,通过初始化类定义替换所述类别实例;本申请的方案能够实现在二次开发中避免修改类库源代码的情况下修改业务的流程,从而提高了开发效率,减少开发资源和算力资源的占用,进而降低开发成本,可广泛应用于计算机软件技术领域。可广泛应用于计算机软件技术领域。可广泛应用于计算机软件技术领域。

【技术实现步骤摘要】
动态修改业务数据逻辑方法、系统、计算机设备及介质


[0001]本专利技术属于计算机软件
,尤其是一种动态修改业务数据逻辑方法、系统、计算机设备以及存储介质。

技术介绍

[0002]JAR(Java ARchive,Java归档)是一种与平台无关的文件格式,可将多个文件合成一个文件。用户可将多个Java applet及其所需组件(class文件、图像和声音)绑定到JAR文件中,而后作为单个的简单HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。JAR格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。
[0003]现有技术中,在基于底层封装JAR包的二次开发过程中,在底层默认实现无法适应下游业务的情况下,方法均是通过更改JAR包,修改默认实现逻辑满足业务要求;现有技术通过更改JAR包在一定程度上导致开发效率过低,并且占用较多的开发资源和算力资源,开发成本较高。

技术实现思路

[0004]有鉴于此,为至少部分解决上述技术问题之一,本专利技术实施例目的在于提供一种效率更高,占用开发资源更少的动态修改业务数据逻辑方法,同时本申请技术方案还提供能够对应实现该方法的系统、计算机设备以及存储介质。
[0005]第一方面,本申请的技术方案提供了动态修改业务数据逻辑方法,其步骤包括:
[0006]在本申请方案的一种可行的实施例中,获取文件包,标记所述文件包中的类别以及所述类别实例,确定所述实例的第一业务逻辑;r/>[0007]编译所述文件包中的类别得到标记类文件,编译所述第一业务逻辑得到定义类文件;
[0008]建立所述标记类文件与所述定义类文件的关联关系;
[0009]扫描所述定义类文件,根据所述关联关系以及第一代理接口的第二业务逻辑替换所述第一业务逻辑,通过初始化类定义替换所述类别实例。
[0010]在本申请方案的一种可行的实施例中,在通过初始化类定义替换所述类别实例这一步骤之前,所述方法包括:
[0011]创建钩子线程,确定所述钩子线程的业务逻辑替换流程;
[0012]生成所述钩子线程的第二代理接口,通过所述第二代理接口执行所述业务逻辑替换流程,所述业务逻辑替换流程用于以第二业务逻辑替换所述第一业务逻辑。
[0013]在本申请方案的一种可行的实施例中,所述根据所述关联关系将所述第一业务逻辑替换为第一代理接口的第二业务逻辑这一步骤,包括:
[0014]通过全局扫描获取所述定义类文件,根据所述关联关系确定得到所述标记类文件;
[0015]通过动态代理机制生成所述定义类文件的第一代理接口,根据所述第一代理接口的第二业务逻辑替换所述第一业务逻辑。
[0016]在本申请方案的一种可行的实施例中,所述通过初始化类定义替换所述类别实例这一步骤包括:
[0017]生成所述类别实例的类型定义描述;
[0018]通过重新定义接口初始化所述类型定义描述,得到目标类别实例,以所述目标类别实例替换所述类别实例。
[0019]在本申请方案的一种可行的实施例中,在所述扫描所述定义类文件这一步骤之前,所述方法还包括:构建启动类加载器,通过所述启动类加载器获取定义类文件的文件包以及配置信息。
[0020]在本申请方案的一种可行的实施例中,在所述获取文件包这一步骤之前,所述方法还包括:
[0021]获取内存空间,将所述内存空间划分为第一区域和第二区域;所述第一区域用于存储所述文件包的文件信息,所述第二区域用于存储所述类别实例;
[0022]创建类加载器,通过所述类加载器加载所述文件包中的类别以及所述类别实例。
[0023]第二方面,本专利技术的技术方案还提供动态修改业务数据逻辑系统,该系统包括:
[0024]数据获取模块,用于获取文件包,标记所述文件包中的类别以及所述类别实例,确定所述实例的第一业务逻辑;
[0025]文件编译模块,用于编译所述文件包中的类别得到标记类文件,编译所述第一业务逻辑得到定义类文件;
[0026]关系记录模块,用于建立所述标记类文件与所述定义类文件的关联关系;
[0027]业务逻辑替换模块,用于扫描所述定义类文件,根据所述关联关系以及第一代理接口的第二业务逻辑替换所述第一业务逻辑,通过初始化类定义替换所述类别实例。
[0028]在本申请方案的一种可行的实施例中,所述动态修改业务数据逻辑系统,还包括:虚拟机配置模块,用于获取内存空间,将所述内存空间划分为第一区域和第二区域;并创建类加载器,通过所述类加载器加载所述文件包中的类别以及所述类别实例;
[0029]所述第一区域用于存储所述文件包的文件信息,所述第二区域用于存储所述类别实例。
[0030]第三方面,本专利技术的技术方案还提供动态修改业务数据逻辑计算机设备,其包括:
[0031]至少一个处理器;
[0032]至少一个存储器,用于存储至少一个程序;
[0033]当至少一个程序被至少一个处理器执行,使得至少一个处理器运行第一方面中所述方法。
[0034]第四方面,本专利技术的技术方案还提供一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于运行如权利要求1

7中任一项所述动态修改业务数据逻辑方法。
[0035]本专利技术的优点和有益效果将在下面的描述中部分给出,其他部分可以通过本专利技术的具体实施方式了解得到:
[0036]本申请技术方案,首先确定需要进行替换的类别失灵以及业务逻辑,然后通过编
译得到标记类文件以及定义类文件,通过两者之间的关联关系进行索引,将得到的定义类文件通过关联关系以及代理接口的业务逻辑替换原业务逻辑,通过初始化类定义替换类别实例,最终实现在二次开发中避免修改类库源代码的情况下修改业务的流程,从而提高了开发效率,减少开发资源和算力资源的占用,进而降低开发成本。
附图说明
[0037]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为本专利技术实施例提供的动态修改业务数据逻辑方法的步骤流程图;
[0039]图2为本专利技术实施例通过钩子线程实现业务逻辑替换的步骤流程图。
具体实施方式
[0040]下面详细描述本专利技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.动态修改业务数据逻辑方法,其特征在于,包括以下步骤:获取文件包,标记所述文件包中的类别以及所述类别实例,确定所述实例的第一业务逻辑;编译所述文件包中的类别得到标记类文件,编译所述第一业务逻辑得到定义类文件;建立所述标记类文件与所述定义类文件的关联关系;扫描所述定义类文件,根据所述关联关系以及第一代理接口的第二业务逻辑替换所述第一业务逻辑,通过初始化类定义替换所述类别实例。2.根据权利要求1所述的动态修改业务数据逻辑方法,其特征在于,在通过初始化类定义替换所述类别实例这一步骤之前,所述方法包括:创建钩子线程,确定所述钩子线程的业务逻辑替换流程;生成所述钩子线程的第二代理接口,通过所述第二代理接口执行所述业务逻辑替换流程,所述业务逻辑替换流程用于以第二业务逻辑替换所述第一业务逻辑。3.根据权利要求1所述的动态修改业务数据逻辑方法,其特征在于,所述根据所述关联关系将所述第一业务逻辑替换为第一代理接口的第二业务逻辑这一步骤,包括:通过全局扫描获取所述定义类文件,根据所述关联关系确定得到所述标记类文件;通过动态代理机制生成所述定义类文件的第一代理接口,根据所述第一代理接口的第二业务逻辑替换所述第一业务逻辑。4.根据权利要求1所述的动态修改业务数据逻辑方法,其特征在于,所述通过初始化类定义替换所述类别实例这一步骤包括:生成所述类别实例的类型定义描述;通过重新定义接口初始化所述类型定义描述,得到目标类别实例,以所述目标类别实例替换所述类别实例。5.根据权利要求1所述的动态修改业务数据逻辑方法,其特征在于,在所述扫描所述定义类文件这一步骤之前,所述方法还包括:构建启动类加载器,通过所述启动类加载器获取定义类文件的文件包以及配置信息。6.根据权利要求1

5任...

【专利技术属性】
技术研发人员:李楠陈新宇郭逸重陈泰年
申请(专利权)人:广州云徙科技有限公司
类型:发明
国别省市:

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

1