【技术实现步骤摘要】
字节码修改方法、装置、计算机设备和存储介质
[0001]本申请涉及程序修改
,特别是涉及一种字节码修改方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
[0002]传统技术中,研发人员每次都要修改服务的代码,来实现测试人员和运维人员的需求,而且使用的基本是硬编码或静态切面维度的方式。静态切面技术方案有很大的局限性,因为Spring AOP只能通过代码写死切入点和逻辑,实现切面功能,代码侵入性很大。因为Java代码要通过编译成字节码以后,才能在JVM中运行,编译之后SpringAOP就不能改变相关逻辑,不能实现动态切面的需求。这样的方案对于研发、测试、运维的效率都有着很大的影响,而且每次对服务代码的修改,都意味着风险的增加。
技术实现思路
[0003]基于此,有必要针对上述技术问题,提供一种能够多维度进行的字节码修改方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0004]第一方面,本申请提供了一种字节码修改方法,所述方法包括:
[0005]获取候选业务逻辑类集 ...
【技术保护点】
【技术特征摘要】
1.一种字节码修改方法,其特征在于,所述方法包括:获取候选业务逻辑类集合,所述候选业务逻辑类集合包括修改函数与至少一个候选业务逻辑类,所述候选业务逻辑类对应于候选业务需求;加载待修改字节码,所述待修改字节码包括初始业务逻辑类,所述初始业务逻辑类对应于初始业务需求,初始业务需求的维度包括缺失日志的修复需求维度与待修改字节码的测试需求维度中的至少一种;基于所述初始业务需求中的维度,确定所述候选业务需求中的目标业务需求,基于所述目标业务需求,确定所述候选业务逻辑类集合中的目标业务逻辑类;将所述修改函数实例化,基于实例化的所述修改函数将包括所述初始业务逻辑类的待修改字节码替换为包括所述目标业务逻辑类的字节码。2.根据权利要求1所述的方法,其特征在于,所述修改函数包括业务逻辑类的路径确定类及属性修改类,所述获取候选业务逻辑类集合包括:按照所述候选业务需求,基于所述属性修改类生成所述候选业务逻辑类,所述候选业务逻辑类包括用于替换的属性、函数及字节码文件中的一个或多个;所述方法还包括:基于所述路径确定类,确定所述初始业务逻辑类的路径信息,基于所述路径信息确定所述初始业务逻辑类中的待修改数据,所述待修改数据包括待修改的属性、函数及字节码文件中的一个或多个;其中,所述候选业务逻辑类用于对所述初始业务逻辑类中的待修改数据进行替换。3.根据权利要求1所述的方法,其特征在于,所述候选业务逻辑类集合包括预设业务逻辑类集合,所述获取候选业务逻辑类集合,包括:在加载所述待修改字节码之前,获取预设业务逻辑数据包;从所述预设业务逻辑数据包中,加载所述预设业务逻辑类集合,所述预设业务逻辑类集合包括对应于预设业务方法类字节码的预设业务方法类;所述基于实例化的所述修改函数将包括所述初始业务逻辑类的待修改字节码替换为包括所述目标业务逻辑类的字节码,包括:基于实例化的所述修改函数将包括所述初始业务逻辑类的待修改字节码替换为包括所述目标业务逻辑类的字节码。4.根据权利要求3所述的方法,其特征在于,所述预设业务逻辑数据包的生成,包括:确定代理类文件,所述代理类文件用于修改所述初始业务逻辑类;获取用于测试的虚拟接口,基于所述虚拟接口生成虚拟接口类文件;对所述代理类文件与所述虚拟接口类文件进行组合,对组合后的文件进行编译,得到所述预设业务逻辑数据包。5.根据权利要求4所述的方法,其特征在于,所述代理类文件的生成,包括:确定代理类文件的清单...
【专利技术属性】
技术研发人员:董旭,
申请(专利权)人:金蝶医疗软件科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。