进行方法调用的方法和装置、电子设备和存储介质制造方法及图纸

技术编号:36038507 阅读:15 留言:0更新日期:2022-12-21 10:43
本申请涉及一种进行方法调用的方法和装置、电子设备和存储介质。其中,方法包括:获取方法调用请求;确定出方法调用请求所需调用的服务层的目标方法;获取目标方法对应的方法参数;对方法调用请求进行解析,确定出方法调用请求中的请求参数;基于方法参数以及请求参数的请求参数值,确定出目标方法所需调用的目标参数;利用反射机制,对目标参数对应的目标方法进行调用。本申请实施例提供的该方法,可以在开发每个业务模块时,不再需要重复为每个业务模块编写Controller代码,并克服开发工作的重复性高、效率低下的问题。效率低下的问题。效率低下的问题。

【技术实现步骤摘要】
进行方法调用的方法和装置、电子设备和存储介质


[0001]本申请涉及服务开发
,尤其涉及一种进行方法调用的方法和装置、电子设备和存储介质。

技术介绍

[0002]分层架构是软件工程中广泛使用的一种架构方式,通过分层的手段来隔离不同的关注点,以应对需求的变化。经典的分层架构分为用户界面层、业务逻辑层和数据访问层。在Java微服务开发中,一般使用Controller层表示用户界面层,Service层表示业务逻辑层,DAO层表示数据访问层。其中,Controller层负责接收用户请求、参数转换,Service层负责完成核心业务逻辑,DAO层负责数据读写。它们的关系是,Controller层调用Service层接口转发请求并开始业务逻辑的执行,Service层调用DAO层接口完成数据的读写。
[0003]由于每个业务模块都包括一个Controller层,因此在开发每个业务模块时,都需要重复为每个业务模块编写Controller代码,导致出现开发工作的重复性高、效率低下的问题。
[0004]针对相关技术中存在的开发工作的重复性高、效率低下的技术问题,目前尚未提供有效的解决方案。

技术实现思路

[0005]为了解决上述开发工作的重复性高、效率低下的技术问题,本申请提供了一种进行方法调用的方法和装置、电子设备和存储介质。
[0006]第一方面,本申请实施例提供了一种进行方法调用的方法,包括:
[0007]获取方法调用请求;
[0008]确定出所述方法调用请求所需调用的服务层的目标方法;
[0009]获取所述目标方法对应的方法参数;
[0010]对所述方法调用请求进行解析,确定出所述方法调用请求中的请求参数;
[0011]基于所述方法参数以及所述请求参数的请求参数值,确定出所述目标方法所需调用的目标参数;
[0012]利用反射机制,对所述目标参数对应的所述目标方法进行调用。
[0013]可选地,如前述的方法,所述确定出所述方法调用请求所需调用的服务层的目标方法,以及获取所述目标方法对应的方法参数,包括:
[0014]对所述方法调用请求对应的目标url进行解析,得到目标方法信息;
[0015]按照所述目标方法信息中的实例对象参数的值,在对象管理容器中查询得到目标实例;
[0016]按照所述目标方法信息中的方法参数的值,在所述目标实例中查询得到所述目标方法;
[0017]利用反射机制,获取到所述目标方法对应的所述方法参数。
[0018]可选地,如前述的方法,所述对所述方法调用请求进行解析,确定出所述方法调用请求中的请求参数,包括:
[0019]新建得到目标集合容器;确定所述方法调用请求中的请求体;
[0020]按照所述方法调用请求的内容类型,在所述请求体中解析得到目标数据类型的所述请求参数,其中,所述目标数据类型为满足所述目标集合容器存储要求的数据类型,每个请求参数包括:请求参数名和所述请求参数值;
[0021]将所述请求参数填充至所述目标集合容器中。
[0022]可选地,如前述的方法,所述基于所述方法参数以及所述请求参数的请求参数值,确定出所述目标方法所需调用的目标参数,包括:
[0023]在所述方法参数为值对象的情况下,确定出所述值对象的目标属性;
[0024]在确定所有所述请求参数中存在属性为所述目标属性的目标请求参数的情况下,将所述目标请求参数的目标请求参数值赋值给所述值对象,得到作为所述目标参数的值对象参数。
[0025]可选地,如前述的方法,所述基于所述方法参数以及所述请求参数的请求参数值,确定出所述目标方法所需调用的目标参数,包括:
[0026]在所述方法参数为基本数据类型的情况下,在所有所述目标参数中读取得到所述方法参数的方法参数值,并将所述方法参数值赋值给所述方法参数。
[0027]可选地,如前述的方法,在所述获取方法调用请求之前,所述方法还包括:
[0028]预先设置统一的请求url作为请求入口;
[0029]所述获取方法调用请求,包括:
[0030]在所述请求url中获取所述方法调用请求。
[0031]可选地,如前述的方法,在利用反射机制,对所述目标参数对应的所述目标方法进行调用之后,所述方法还包括:
[0032]确定对所述目标方法进行调用的调用结果,其中,所述调用结果用于指示是否成功调用得到所述目标方法,并通过所述目标方法对所述目标参数进行处理;
[0033]根据所述调用结果生成请求响应;
[0034]将所述请求响应返回至发送所述方法调用请求的目标对象。
[0035]第二方面,本申请实施例提供了一种进行方法调用的装置,包括:
[0036]第一获取模块,用于获取方法调用请求;
[0037]第一确定模块,用于确定出所述方法调用请求所需调用的服务层的目标方法;
[0038]第二获取模块,用于获取所述目标方法对应的方法参数;
[0039]第二确定模块,用于对所述方法调用请求进行解析,确定出所述方法调用请求中的请求参数;
[0040]第三确定模块,用于基于所述方法参数以及所述请求参数的请求参数值,确定出所述目标方法所需调用的目标参数;
[0041]调用模块,用于利用反射机制,对所述目标参数对应的所述目标方法进行调用。
[0042]第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
[0043]所述存储器,用于存放计算机程序;
[0044]所述处理器,用于执行所述计算机程序时,实现如前述任一项所述的方法。
[0045]第四方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行如前任一项所述的方法。
[0046]本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
[0047]本申请实施例提供的该方法,针对于任一个服务层,都可采用本申请的方法,按照方法调用请求调用得到服务层中对应的目标方法,进而无需针对该服务层开发对应的controller层,从而可以在开发每个业务模块时,不再需要重复为每个业务模块编写Controller代码,并克服开发工作的重复性高、效率低下的问题。
附图说明
[0048]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0049]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0050]图1为本申请实施例提供的一种进行方法调用的方法流程示意图;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进行方法调用的方法,其特征在于,包括:获取方法调用请求;确定出所述方法调用请求所需调用的服务层的目标方法;获取所述目标方法对应的方法参数;对所述方法调用请求进行解析,确定出所述方法调用请求中的请求参数;基于所述方法参数以及所述请求参数的请求参数值,确定出所述目标方法所需调用的目标参数;利用反射机制,对所述目标参数对应的所述目标方法进行调用。2.根据权利要求1所述的进行方法调用的方法,其特征在于,所述确定出所述方法调用请求所需调用的服务层的目标方法,包括:对所述方法调用请求对应的目标url进行解析,得到目标方法信息;按照所述目标方法信息中的实例对象参数的值,在对象管理容器中查询得到目标实例;按照所述目标方法信息中的方法参数的值,在所述目标实例中查询得到所述目标方法;所述获取所述目标方法对应的方法参数,包括:利用反射机制,获取到所述目标方法对应的所述方法参数。3.根据权利要求1所述的进行方法调用的方法,其特征在于,所述对所述方法调用请求进行解析,确定出所述方法调用请求中的请求参数,包括:新建得到目标集合容器;确定所述方法调用请求中的请求体;按照所述方法调用请求的内容类型,在所述请求体中解析得到目标数据类型的所述请求参数,其中,所述目标数据类型为满足所述目标集合容器存储要求的数据类型,每个请求参数包括:请求参数名和所述请求参数值;将所述请求参数填充至所述目标集合容器中。4.根据权利要求1所述的进行方法调用的方法,其特征在于,所述基于所述方法参数以及所述请求参数的请求参数值,确定出所述目标方法所需调用的目标参数,包括:在所述方法参数为值对象的情况下,确定出所述值对象的目标属性;在确定所有所述请求参数中存在属性为所述目标属性的目标请求参数的情况下,将所述目标请求参数的目标请求参数值赋值给所述值对象,得到作为所述目标参数的值对象参数。5.根据权利要求1所述的进行方法调用的方法,其特征在于,所述基于所述方法参...

【专利技术属性】
技术研发人员:尚岩
申请(专利权)人:上海众源网络有限公司
类型:发明
国别省市:

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

1