实现业务增强的方法和装置制造方法及图纸

技术编号:23533671 阅读:25 留言:0更新日期:2020-03-20 07:57
本发明专利技术公开了一种实现业务增强的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收来自监听服务器的下载通知;根据所述下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强。该实施方案能够动态替换执行代码,达到业务增强功能。该实施方式在不中断或停止服务的情况下,替换执行过程的逻辑运行,能够用于线上异常执行的输入输出查看或其它功能增强,降低手动修改代码引起人为错误的风险,避免了反复发布业务代码的繁琐操作。

Methods and devices for business enhancement

【技术实现步骤摘要】
实现业务增强的方法和装置
本专利技术涉及计算机
,尤其涉及一种实现业务增强的方法和装置。
技术介绍
开发和线上产品维护的过程中,我们经常遇到一些比较棘手的问题,比如微服务越来越盛行,我们一个操作可能会调用多个服务的服务链,出现数据异常等情况,因为看不到服务方法的输入输出参数情况,让异常位置确认和调试变得非常痛苦。目前对于类似场景,常用的解决方式是通过停止或中断服务,修改代码,在代码中加入新的业务逻辑,并将修改的代码上线来实现业务增强,即确定异常,当异常排除之后需要删除或注解掉新的业务逻辑,此时需要再次修改代码上线。其中,增强(advice)是指向各个程序内部注入一些逻辑代码从而增强原有程序的功能。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:因为异常不可预估,即不能确定什么地方或哪些方法出现异常,所以只能在出现异常后反复修改代码,反复上线,而且当异常排除之后需要删除或注解掉新的业务逻辑,此时需要再次修改代码上线,操作繁琐,浪费时间,容易造成人为错误,风险较大。
技术实现思路
有鉴于此,本专利技术实施例提供一种实现业务增强的方法和装置,能够动态替换执行代码,达到业务增强功能,即在不中断或停止服务的情况下,替换执行过程的逻辑运行,能够用于线上异常执行的输入输出查看或其它功能增强,降低手动修改代码引起人为错误的风险,避免了反复发布业务代码的繁琐操作。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种实现业务增强的方法,包括:接收来自监听服务器的下载通知;根据所述下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强。可选地,所述jar包还包括拦截规则;通过动态加载机制,动态加载并实例化所述jar包中的实现类,以实现业务增强包括:通过动态加载机制,动态加载并实例化所述jar包中的实现类;根据所述拦截规则,通过面向切面编程方法拦截相应的业务方法,分别在所述业务方法执行前和执行后,调用所述jar包中的实现类,以实现业务增强。可选地,在调用所述jar包中的实现类之前,所述方法还包括:确定执行开关处于开启状态。可选地,所述动态加载机制为java反射机制。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种实现业务增强的方法,包括:接收用户上传的jar包,所述jar包至少包括实现业务增强的实现类;确定是否向应用服务器发送下载通知;若是,则向应用服务器发送下载通知,以通知所述应用服务器下载并通过动态加载机制动态加载所述jar包中的实现类。可选地,在向应用服务器发送下载通知之前,所述方法还包括:确定执行开关处于开启状态。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种实现业务增强的装置,包括:通知接收模块,用于接收来自监听服务器的下载通知;下载模块,用于根据所述下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;业务增强模块,用于通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强。可选地,所述jar包还包括拦截规则;所述业务增强模块还用于:通过动态加载机制,动态加载并实例化所述jar包中的实现类;根据所述拦截规则,通过面向切面编程方法拦截相应的业务方法,分别在所述业务方法执行前和执行后,调用所述jar包中的实现类,以实现业务增强。可选地,所述业务增强模块还用于:在调用所述jar包中的实现类之前,确定执行开关处于开启状态。可选地,所述动态加载机制为java反射机制。为实现上述目的,根据本专利技术实施例的又一方面,提供了一种实现业务增强的装置,包括:jar包接收模块,用于接收用户上传的jar包,所述jar包至少包括实现业务增强的实现类;判断模块,用于确定是否向应用服务器发送下载通知;通知发送模块,用于向应用服务器发送下载通知,以通知所述应用服务器下载并通过动态加载机制动态加载所述jar包中的实现类。可选地,所述判断模块还用于:确定执行开关的状态,若所述执行开关处于开启状态,则确定向应用服务器发送下载通知。为实现上述目的,根据本专利技术实施例的又一方面,提供了一种实现业务增强的系统,该系统包括监听服务器和应用服务器;所述监听服务器,用于接收用户上传的jar包,所述jar包至少包括实现业务增强的实现类;确定是否向应用服务器发送下载通知;若是,则向应用服务器发送下载通知,以通知所述应用服务器下载并通过动态加载机制动态加载所述jar包中的实现类;所述应用服务器,用于根据来自监听服务器的下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强。可选地,所述应用服务器通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强包括:通过动态加载机制,动态加载并实例化所述jar包中的实现类;根据所述拦截规则,通过面向切面编程方法拦截相应的业务方法,分别在所述业务方法执行前和执行后,调用所述jar包中的实现类,以实现业务增强。可选地,所述监听服务器上还部署有执行开关;在所述监听服务器还用于在向应用服务器发送下载通知之前,确定所述执行开关处于开启状态;所述应用服务器还用于在调用所述jar包中的实现类之前,确定所述执行开关处于开启状态。为实现上述目的,根据本专利技术实施例的又一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例的实现业务增强的方法。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时本专利技术实施例的实现业务增强的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用接收来自监听服务器的下载通知;根据所述下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强的技术手段,所以能够动态替换执行代码,达到业务增强功能,即在不中断或停止服务的情况下,替换执行过程的逻辑运行,能够用于线上异常执行的输入输出查看或其它功能增强降低手动修改代码引起人为错误的风险,避免了反复发布业务代码的繁琐操作。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术一实施例的实现业务增强的方法的主要流程的示意图;图2是根据本专利技术另一实施例的实现业务增强的方法的主要流程的示意图;图3是根据本专利技术一实施例的实现业务增强的系统的示意图;图4是根据本专利技术又一实施例的实现业务增强的方法的主要流程的示意图;图5是根据本专利技术一实施例的实现业务增强的装置的主要模块的示意图;图6是根据本专利技术另一实施例本文档来自技高网...

【技术保护点】
1.一种实现业务增强的方法,其特征在于,包括:/n接收来自监听服务器的下载通知;/n根据所述下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;/n通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强。/n

【技术特征摘要】
1.一种实现业务增强的方法,其特征在于,包括:
接收来自监听服务器的下载通知;
根据所述下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;
通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强。


2.根据权利要求1所述的方法,其特征在于,所述jar包还包括拦截规则;
通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强包括:
通过动态加载机制,动态加载并实例化所述jar包中的实现类;
根据所述拦截规则,通过面向切面编程方法拦截相应的业务方法,分别在所述业务方法执行前和执行后,调用所述jar包中的实现类,以实现业务增强。


3.根据权利要求2所述的方法,其特征在于,在调用所述jar包中的实现类之前,所述方法还包括:
确定执行开关处于开启状态。


4.根据权利要求1-3任一项所述的方法,其特征在于,所述动态加载机制为java反射机制。


5.一种实现业务增强的方法,其特征在于,包括:
接收用户上传的jar包,所述jar包至少包括实现业务增强的实现类;
确定是否向应用服务器发送下载通知;
若是,则向应用服务器发送下载通知,以通知所述应用服务器下载并通过动态加载机制动态加载所述jar包中的实现类。


6.根据权利要求5所述的方法,其特征在于,确定是否向应用服务器发送下载通知包括:
确定执行开关的状态,若所述执行开关处于开启状态,则确定向应用服务器发送下载通知。


7.一种实现业务增强的装置,其特征在于,包括:
通知接收模块,用于接收来自监听服务器的下载通知;
下载模块,用于根据所述下载通知,下载对应的jar包,所述jar包至少包括实现业务增强的实现类;
业务增强模块,用于通过动态加载机制,动态加载所述jar包中的实现类,以实现业务增强。


8.根据权利要求7所述的装置,其特征在于,所述jar包还包括拦截规则;
所述业务增强模块还用于:
通过动态加载机制,动态加载并实例化所述jar包中的实现类;
根据所述拦截规则,通过面向切面编程方法拦截相应的业务方法,分别在所述业务方法执行前和执行后,调用所述jar包中的实现类,以实现业务增强。


9.根据权利要求8所述的装置,其特征在于,所述业务增强模块还用于:
在调用所述jar包中的实现类之前,确定执行开关处于开启状态。<...

【专利技术属性】
技术研发人员:谷东波
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1