System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件开发,具体而言,涉及一种非侵入式接口拓展方法及装置、电子设备及存储介质。
技术介绍
1、java语言作为一种编程语言,因其跨平台性、面对对象性、间接性以及多线程性等多重优势而被广泛使用,在java编程过程中,java虚拟机是java程序运行的基础,其为java程序提供了一个稳定、安全、高效的运行环境,使得java语言能够在不同的平台上实现"一次编写,重复运行"的特性。
2、当前,为了对java程序进行更好的管理,引入了spr ing框架,可以对java应用程序进行全生命周期的管理,spr ing应用程序是基于spr ing框架编写的java应用程序,编写完成的spr ing应用程序中的函数往往只能被java虚拟机内部调用。
3、基于业务需求的增长,需要对spr ing应用程序中函数进行拓展,相关技术中,需要通过修改代码的方式侵入式地对spr ing应用程序中的函数进行拓展,这种方法会导致虚拟机存在安全风险。
4、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本专利技术实施例提供了一种非侵入式接口拓展方法及装置、电子设备及存储介质,以至少解决相关技术中,在对虚拟机的内部函数向外进行拓展时,需要通过修改代码的方式实现,会导致虚拟机存在安全风险的技术问题。
2、根据本专利技术实施例的一个方面,提供了一种非侵入式接口拓展方法,应用于非侵入式接口拓展系统,所述非侵入式接口拓展方法包括:从目标虚拟机对应的spr
3、可选地,从spr ing应用程序中获取时机函数的步骤包括:对所述目标虚拟机中的spr ing应用程序进行监测,获取所述spr ing应用程序内被调用的函数对象及所述函数对象于目标周期内的调用频率;在所述函数对象于目标周期内的调用频率大于所述预设调用频率阈值的情况下,选取所述函数对象为所述时机函数。
4、可选地,从spr ing应用程序中获取时机函数的步骤包括:获取所述spr ing应用程序中的所述已创建调用接口;通过所述已创建调用接口调用所述spr ing程序中的函数对象,并将调用成功的所述函数对象作为所述时机函数。
5、可选地,基于所述回调函数的参数信息确定所述spr ing应用程序的上下文对象的步骤包括:通过所述参数信息获取所述spr ing应用程序的类加载器;使用所述类加载器通过反射的方式获取实现上下文接口的类对象;通过反射的方式从所述类对象中确定所述spr ing应用程序的上下文对象。
6、可选地,在为所述目标函数定义目标接口之后,还包括:对所述目标接口进行测试,得到测试结果;在所述测试结果指示所述目标接口通过测试的情况下,将所述目标函数和所述目标函数对应的目标接口存储至目标函数存储容器。
7、可选地,对所述目标接口进行测试的步骤包括:在测试环境中,基于所述目标接口调用所述目标函数,获取所述目标函数在调用过程中传输的数据;获取所述目标函数预先定义的传输参数,将所述目标函数在调用过程中传输的数据与预先定义的传输参数进行比对,得到比对结果;在所述比对结果指示所述目标函数在调用过程中传输的数据与预先定义的传输参数一致的情况下,确定所述目标接口通过测试。
8、可选地,所述回调函数的参数信息的类型包括下述至少之一:所述回调函数执行时涉及的处理事件的事件参数信息、所述回调函数执行时涉及的处理事件的结果参数信息、所述回调函数执行时涉及的处理事件的状态参数信息。
9、根据本专利技术实施例的另一方面,还提供了一种非侵入式接口拓展装置,应用于非侵入式接口拓展系统,所述非侵入式接口拓展装置包括:获取单元,用于从目标虚拟机对应的spr ing应用程序中获取时机函数,其中,所述时机函数包括下述至少之一:目标周期内调用频率高于预设调用频率阈值的函数对象、已创建调用接口的函数对象;解析单元,用于获取所述时机函数被调用时的回调函数,并对所述回调函数进行解析,得到回调函数的参数信息;确定单元,用于基于所述回调函数的参数信息确定所述spr ing应用程序的上下文对象,并基于所述上下文对象获取所述spr ing应用程序的bean对象,其中,所述bean对象为访问spr ing框架中的容器对象的入口;定义单元,用于通过所述bean对象获取目标函数,并为所述目标函数定义目标接口,其中,在定义所述目标接口后,外部应用程序通过所述目标接口访问所述目标函数,所述外部应用程序表示在所述目标虚拟机外部运行的软件程序或服务。
10、可选地,所述获取单元包括:第一监测模块,用于对所述目标虚拟机中的spr ing应用程序进行监测,获取所述spr ing应用程序内被调用的函数对象及所述函数对象于目标周期内的调用频率;第一选取模块,用于在所述函数对象于目标周期内的调用频率大于所述预设调用频率阈值的情况下,选取所述函数对象为所述时机函数。
11、可选地,所述获取单元包括:第一获取模块,用于获取所述spr ing应用程序中的所述已创建调用接口;第一作为模块,用于通过所述已创建调用接口调用所述spr ing程序中的函数对象,并将调用成功的所述函数对象作为所述时机函数。
12、可选地,所述确定单元包括:第二获取模块,用于通过所述参数信息获取所述spring应用程序的类加载器;第三获取模块,用于使用所述类加载器通过反射的方式获取实现上下文接口的类对象;第一确定模块,用于通过反射的方式从所述类对象中确定所述spring应用程序的上下文对象。
13、可选地,所述非侵入式接口拓展装置还包括:第一测试模块,用于对所述目标接口进行测试,得到测试结果;第一存储模块,用于在所述测试结果指示所述目标接口通过测试的情况下,将所述目标函数和所述目标函数对应的目标接口存储至目标函数存储容器。
14、可选地,所述第一测试模块包括:第一调用子模块,用于在测试环境中,基于所述目标接口调用所述目标函数,获取所述目标函数在调用过程中传输的数据;第一比对子模块,用于获取所述目标函数预先定义的传输参数,将所述目标函数在调用过程中传输的数据与预先定义的传输参数进行比对,得到比对结果;第一确定子模块,用于在所述比对结果指示所述目标函数在调用过程中传输的数据与预先定义的传输参数一致的情本文档来自技高网...
【技术保护点】
1.一种非侵入式接口拓展方法,其特征在于,应用于非侵入式接口拓展系统,所述非侵入式接口拓展方法包括:
2.根据权利要求1所述的方法,其特征在于,从Spring应用程序中获取时机函数的步骤包括:
3.根据权利要求1所述的方法,其特征在于,从Spring应用程序中获取时机函数的步骤包括:
4.根据权利要求1所述的方法,其特征在于,基于所述回调函数的参数信息确定所述Spring应用程序的上下文对象的步骤包括:
5.根据权利要求1所述的方法,其特征在于,在为所述目标函数定义目标接口之后,还包括:
6.根据权利要求5所述的方法,其特征在于,对所述目标接口进行测试的步骤包括:
7.根据权利要求1所述的方法,其特征在于,所述回调函数的参数信息的类型包括下述至少之一:所述回调函数执行时涉及的处理事件的事件参数信息、所述回调函数执行时涉及的处理事件的结果参数信息、所述回调函数执行时涉及的处理事件的状态参数信息。
8.一种非侵入式接口拓展装置,其特征在于,应用于非侵入式接口拓展系统,所述非侵入式接口拓展装置包括:
...【技术特征摘要】
1.一种非侵入式接口拓展方法,其特征在于,应用于非侵入式接口拓展系统,所述非侵入式接口拓展方法包括:
2.根据权利要求1所述的方法,其特征在于,从spring应用程序中获取时机函数的步骤包括:
3.根据权利要求1所述的方法,其特征在于,从spring应用程序中获取时机函数的步骤包括:
4.根据权利要求1所述的方法,其特征在于,基于所述回调函数的参数信息确定所述spring应用程序的上下文对象的步骤包括:
5.根据权利要求1所述的方法,其特征在于,在为所述目标函数定义目标接口之后,还包括:
6.根据权利要求5所述的方法,其特征在于,对所述目标接口进行测试的步骤包括:
7.根据权利要求1所述的方法,其特征在于,所述回调函数的参数信息的类型包括下述至少...
【专利技术属性】
技术研发人员:王冠,陈思吉,严金勇,孙皓,周祥伟,
申请(专利权)人:中国民航信息网络股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。