CN115658276B - 业务开发方法、装置、电子设备及可读存储介质 - Google Patents
业务开发方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115658276B CN115658276B CN202211452469.XA CN202211452469A CN115658276B CN 115658276 B CN115658276 B CN 115658276B CN 202211452469 A CN202211452469 A CN 202211452469A CN 115658276 B CN115658276 B CN 115658276B
- Authority
- CN
- China
- Prior art keywords
- interface
- implementation
- secondary development
- service
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供了一种业务开发方法、装置、电子设备及可读存储介质,所述业务开发方法包括:动态创建目标业务中的二次开发接口对应的第一实例对象;根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。本申请解决了现有技术中业务开发的稳定性差的技术问题。
Description
技术领域
本申请涉及低代码/零代码开发平台技术领域,尤其涉及一种业务开发方法、装置、电子设备及可读存储介质。
背景技术
随着各个行业的ERP系统(Enterprise Resource Planning:集成化管理信息系统)的普及,企业对的ERP系统的应用要求越来越高,在实际应用的过程中,为满足企业的个性化管理的需求,需要对ERP系统进行业务的开发和扩展。传统的ERP产品一般会控制其源代码的开发,通过ERP系统的开发者提供服务以现有ERP系统为基础完成ERP系统的业务开发,但是这种ERP系统的业务开发方式的主动权在开发者手上,而不在用户手上,从而造成了在业务开发的过程中,用户的自主性低的技术问题。
当前,为解决上述问题,通过提供开源型的ERP系统,支持源代码的开放,使得用户能够借助源代码自主完成ERP系统的业务开发,但是在对ERP系统进行业务的扩展开发时,不可避免的会对ERP系统的已有代码进行修改,使得已有代码与扩展代码之间发生冲突,导致业务开发的稳定性差。
发明内容
本申请的主要目的在于提供一种业务开发方法、装置、电子设备及可读存储介质,旨在解决现有技术中业务开发的稳定性差的技术问题。
为实现上述目的,本申请提供一种业务开发方法,所述业务开发方法包括:
动态创建目标业务中的二次开发接口对应的第一实例对象;
根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;
基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;
根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。
为实现上述目的,本申请还提供一种业务开发装置,所述业务开发装置包括:
动态创建模块,用于动态创建目标业务中的二次开发接口对应的第一实例对象;
动态代理对象生成模块,用于根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;
接口实现查找模块,用于基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;
业务开发模块,用于根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。
本申请还提供一种电子设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述业务开发方法的程序,所述业务开发方法的程序被处理器执行时可实现如上述的业务开发方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现业务开发方法的程序,所述业务开发方法的程序被处理器执行时实现如上述的业务开发方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的业务开发方法的步骤。
本申请提供了一种业务开发方法、装置、电子设备及可读存储介质,相比于现有技术中通过提供开源型的ERP系统,支持源代码的开放,使得用户能够借助源代码自主完成ERP系统的业务开发,本申请首先动态创建目标业务中的二次开发接口对应的第一实例对象;根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。本申请通过在预设接口数据库中查找二次开发接口所对应的接口实现,并采用动态代理的方式创建二次开发接口的动态代理对象,如果预设接口数据库中存在二次开发接口对应的二开实现则优先采用二开实现调用二次开发接口对应的动态代理对象,以对业务进行开发,在采用二开实现和动态代理结合的方式进行ERP系统的业务开发时,并不会修改ERP系统的已有代码,开发的业务的扩展代码也不会与ERP系统的已有代码发生代码冲突,克服了现有技术中在对ERP系统进行业务的扩展开发时,不可避免的会对ERP系统的已有代码进行修改,使得已有代码与扩展代码之间发生冲突,的技术缺陷,从而提高了业务开发的稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请业务开发方法第一实施例的二次开发接口和实现的关系图;
图2为本申请业务开发方法第一实施例的流程示意图;
图3为本申请业务开发方法第二实施例的流程示意图;
图4为本申请业务开发装置一实施例的结构示意图;
图5为本申请实施例中业务开发方法涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本申请保护的范围。
实施例一
随着各个行业的ERP系统(Enterprise Resource Planning:集成化管理信息系统)的普及,企业对的ERP系统的应用要求越来越高,在实际应用的过程中,为满足企业的个性化管理的需求,需要对ERP系统进行业务的开发和扩展。传统的ERP产品一般会控制其源代码的开发,通过ERP系统的开发者提供服务以现有ERP系统为基础完成ERP系统的业务开发,但是这种ERP系统的业务开发方式的主动权在开发者手上,而不在用户手上,从而造成了在业务开发的过程中,用户的自主性低的技术问题。
当前,为解决上述问题,通过提供开源型的ERP系统,支持源代码的开放,使得用户能够借助源代码自主完成ERP系统的业务开发,但是在对ERP系统进行业务的扩展开发时,不可避免的会对ERP系统的已有代码进行修改,使得已有代码与扩展代码之间发生冲突,导致业务开发的稳定性差。
ERP系统的业务开发需要使用到接口与实现,接口是用于定义业务所需要实现的功能,但接口不会记载业务的具体实现方式,实现则记载着业务的具体实现方式,用于实现接口的具体功能,一般地,一个接口可以对应多个实现,也即存在多个实现方式能够实现接口的具体功能,可以将接口理解为功能实现的抽象概念,将实现理解为功能实现的具体概念。
图1为本申请提供的一种二次开发接口和实现的关系图,应用站点100中包含二次开发接口1001和默认实现1002,扩展模块200包含二开实现2001,其中,二次开发接口1001与默认实现1002必须有实现接口才能通过默认实现调用二次开发接口中的实例对象,而二开实现2001与二次开发接口1001不需要实现接口,只需要保证二开实现2001的方法名称和二次开发接口1001的方法名称相同,即可通过二开实现调用二次开发接口中的实例对象。
本申请实施例提供一种业务开发方法,在本申请业务开发方法的第一实施例中,参照图2,所述业务开发方法包括:
步骤S10,动态创建目标业务中的二次开发接口对应的第一实例对象;
在本申请实施例中,需要说明的是,所述第一实例对象是通过动态代理创建的,所述第一实例对象的实质是指所述二次开发接口的代理对象,也即所述第一实例对象是指所述二次开发接口的实例化对象,所述实例化对象的作用在于为二次开发接口中的方法、属性等提供一个分配空间,从而赋予二次开发接口这个抽象概念一个具体的实现对象,以进行二次开发接口的调用和功能的实现。
另外地,需要说明的是,所述动态代理是指在不修改已有代码的基础上,计算机系统自动为目标类创建一个代理对象,从而实现在不修改原有对象的基础上为对象添加新功能,采用动态代理机制创建实例对象能够降低目标业务的扩展代码与已有代码的耦合性,增强代码的可维护性。
步骤S20,根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;
在本申请实施例中,需要说明的是,所述目标拦截器是指所述二次开发接口的方法执行拦截器,用于为所述第一实例对象提供占用空间,也即为所述二次开发接口提供运行空间。
另外地,需要说明的是,所述动态代理对象是指携带方法执行拦截器的实例化对象。
作为一种示例,步骤S10至步骤S20包括:获取目标业务中的二次开发接口,通过动态代理机制,动态创建所述二次开发接口对应的第一实例对象;获取所述二次开发接口对应的目标拦截器,根据所述目标拦截器和所述第一实例对象,生成所述二次开发接口对应的动态代理对象,其中,所述动态代理对象是指携带方法执行拦截器的实例化对象。通过动态代理机制创建实例对象能够降低目标业务的扩展代码与已有代码的耦合性,增强代码的可维护性。
步骤S30,基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;
在本申请实施例中,需要说明的是,所述接口实现至少包括二开实现和默认实现中的一种,所述二开实现是指所述二次开发接口的非默认实现,所述二开实现用于所述二次开发接口在扩展模块中对业务进行开发,所述默认实现用于所述二次开发接口在应用站点中对业务进行开发。
另外地,需要说明的是,所述预设接口数据库用于表征所述二次开发接口和所述接口实现之间的映射关系,其中,一个二次开发接口可以对应多个接口实现,所述预设接口数据库用于记录所述二次开发接口对应的描述信息和所述接口实现之间的对应关系,因此,在所述预设接口数据库中查找所述二次开发接口对应的接口实现时,要先获取二次开发接口的描述信息,通过描述信息才能在预设数据库中查找到二次开发接口对应的接口实现。
可选地,为提高查找的便捷性,可以提供与二次开发接口相对应的OpenAPI文档查询界面,所述OpenAPI文档查询界面用于关联预设接口数据库和二次开发接口的描述信息,开发人员可以使用OpenAPI文档查询界面,通过在查询界面的查询窗口中输入接口的描述信息,就能链接并查找到预设接口数据库中查找接口所对应的接口实现,从而将开发人员自定义的业务逻辑实现应用到已有框架中。
步骤S40,根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。
作为一种示例,步骤S30至步骤S40包括:获取所述二次开发接口对应的至少一个描述信息,基于所述目标拦截器,以所述描述信息为索引,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种,所述预设接口数据库用于表征所述二次开发接口和所述接口实现之间的映射关系;基于所述接口实现,反射调用所述动态代理对象,对所述目标业务进行开发,以完成所述目标业务的二次开发。
其中,所述根据所述接口实现和所述动态代理对象,对所述目标业务进行开发的步骤包括:
步骤S41,检测所述接口实现中是否包含二开实现;
步骤S42,若是,则基于所述二开实现,反射调用所述动态代理对象,对所述目标业务进行开发;
步骤S43,若否,则基于所述默认实现,反射调用所述动态代理对象,对所述目标业务进行开发。
作为一种示例,步骤S41至步骤S43包括:检测所述接口实现中是否包含二开实现;若检测到所述接口实现中包含所述二开实现,则基于所述二开实现,反射调用所述动态代理对象,对所述目标业务进行开发;若检测到所述接口实现中不包含所述二开实现,则基于所述默认实现,反射调用所述动态代理对象,对所述目标业务进行开发。本申请实施例通过检测预设接口数据库中是否存在当前所使用的二次开发接口对应的二开实现来对业务进行不同的开发,当存在二开实现时,则采用二开实现的方法调用二次开发接口的动态代理对象,以实现二次开发接口对应的功能,从而完成目标业务的二次开发,当不存在二开实现时,则采用默认实现的方法调用二次开发接口的动态代理对象,从而完成目标业务的二次开发,其中,默认实现对应的是在应用站点中进行业务开发,二开实现对应的是在扩展模块中进行业务开发,通过提供在扩展模块和应用站点分别进行业务开发,提高了业务开发的可扩展性。
作为一种示例,所述基于所述默认实现,反射调用所述动态代理对象,对所述目标业务进行开发的步骤还包括:获取所述二次开发接口对应的第一参数对象,根据所述第一实例对象和所述第一参数对象,将所述第一参数对象传入所述第一实例对象,反射调用所述动态代理对象,对所述目标业务进行开发,以实现所述目标业务的二次开发。
其中,所述基于所述二开实现,反射调用所述动态代理对象,对所述目标业务进行开发的步骤包括:
步骤S421,通过反射加载所述二开实现中的程序集,创建所述二开实现对应的第二实例对象;
步骤S422,依据所述二次开发接口和所述二开实现,生成所述二次开发接口对应的目标参数对象;
步骤S423,根据所述第二实例对象和所述目标参数对象,反射调用所述动态代理对象,对所述目标业务进行开发。
作为一种示例,步骤S421至步骤S423包括:通过反射加载所述二开实现中的程序集,创建所述二开实现对应的第二实例对象;获取所述二次开发接口对应的第一参数对象和所述二开实现对应的第二参数对象,根据所述第一参数对象和所述第二参数对象,生成所述二次开发接口对应的目标参数对象;将所述目标参数对象传入所述第二实例对象,反射调用所述动态代理对象,对所述目标业务进行开发,以实现所述目标业务的二次开发。本申请实施例通过将二次开发接口的参数类型转换为二开实现的参数类型,并创建二开实现的实例化对象,从而保证集成了扩展模块的ERP系统在扩展模块进行业务开发时,已有代码和扩展代码不会出现代码冲突,从而提高了业务开发的稳定性。
其中。所述依据所述二次开发接口和所述二开实现,生成所述二次开发接口对应的目标参数对象的步骤包括:
步骤B421,获取所述二次开发接口对应的第一参数对象和所述二开实现对应的第二参数对象;
在本申请实施例中,需要说明的是,所述第一参数对象和所述第二参数对象的方法名称一致,但参数类型并不是完全一致的。
步骤B422,将所述第一参数对象序列化成所述第二参数对象,以生成所述二次开发接口对应的目标参数对象。
在本申请实施例中,需要说明的是,所述序列化是指在软件编程的过程中将高级语言(如C++)的类对象以字节的形式存储到磁盘中或者进行数据传输的方法。可选地,可以以JSON作为数据存储格式来进行序列化操作,具体地,将类对象的各个属性按照JSON的语法规范生成对应的JSON字符串,然后将字符串用户数据存储或传输。所述序列化对应的反序列化是指将序列化后的字节对象还原为类对象的方法,在以JSON作为数据存储格式进行反序列化操作时需要安装JSON的语法规范对字符串进行解析,并需要创建类对象,为类对象的各个属性进行赋值。
另外地,需要说明的是,所述目标参数对象是指转化为所述第二参数对象对应的参数类型的参数对象。
作为一种示例,步骤B421至步骤B422包括:获取所述二次开发接口对应的第一参数对象和所述二开实现对应的第二参数对象,将所述第一参数对象对应的参数类型序列化成所述第二参数对象对应的参数类型,以生成所述二次开发接口对应的目标参数对象,所述目标参数对象是指转化为所述第二参数对象对应的参数类型的参数对象。例如,可以假设二次开发接口的参数类型为param,而二开实现的参数类型为dto,则可采用JSON序列化的方式将二次开发接口的参数类型序列化成dto,从而得到参数类型为dto的二次开发接口。本申请实施例通过序列化的方法,让二次开发接口对应的参数对象的参数类型和二开实现对应的参数对象的参数类型保持一致,也即接口和实现各自所对应的参数类型一致,从而能采用二开实现调用二次开发接口实现接口的功能,且序列化不要求接口的参数对象和实现的参数对象完全相同,提高了参数对象的扩展性。
本申请实施例提供了一种业务开发方法,相比于现有技术中通过提供开源型的ERP系统,支持源代码的开放,使得用户能够借助源代码自主完成ERP系统的业务开发,本申请实施例首先动态创建目标业务中的二次开发接口对应的第一实例对象;根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。本申请实施例通过在预设接口数据库中查找二次开发接口所对应的接口实现,并采用动态代理的方式创建二次开发接口的动态代理对象,如果预设接口数据库中存在二次开发接口对应的二开实现则优先采用二开实现调用二次开发接口对应的动态代理对象,以对业务进行开发,在采用二开实现和动态代理结合的方式进行ERP系统的业务开发时,并不会修改ERP系统的已有代码,开发的业务的扩展代码也不会与ERP系统的已有代码发生代码冲突,克服了现有技术中在对ERP系统进行业务的扩展开发时,不可避免的会对ERP系统的已有代码进行修改,使得已有代码与扩展代码之间发生冲突,的技术缺陷,从而提高了业务开发的稳定性。
实施例二
进一步地,参照图3,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,所述基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现的步骤包括:
步骤S31,获取所述二次开发接口对应的至少一个描述信息;
在本申请实施例中,需要说明的是,所述描述信息包括二次开发接口的方法名称、程序集类型、入参类型、返回值类型等。
步骤S32,基于所述目标拦截器和所述描述信息,在所述预设接口数据库中查找所述二次开发接口对应的接口实现。
作为一种示例,步骤S31至步骤S32包括:获取所述二次开发接口对应的方法名称,基于所述目标拦截器,将所述方法名称作为索引在所述预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述二次开发接口对应多个接口实现,所述接口实现至少包括二开实现和默认实现中的一种,所述二开实现用于所述二次开发接口在扩展模块中对业务进行开发,所述默认实现用于所述二次开发接口在应用站点中对业务进行开发。例如,可以假设当前所使用的二次开发接口对应的方法名称为方法A,以方法A作为索引可以在预设接口数据库中检索到方法A对应的接口实现为实现a,则实现a即为目标业务中的二次开发接口对应的接口实现。本申请实施例通过获取二次开发接口的描述信息,以描述信息为索引在预设接口数据库中查找二次开发接口所对应的接口实现,由于预设接口数据库中记录的是二次开发接口的描述信息和接口实现之间的对应关系,且描述信息描述的是二次开发接口的特有特征,因此,采用描述信息来检索二次开发接口对应的接口实现,能够提高检索的准确度。
其中,所述根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象的步骤包括:
步骤S21,通过定义所述二次开发接口的方法拦截器,确定所述二次开发接口对应的目标拦截器;
在本申请实施例中,需要说明的是,所述目标拦截器是指所述二次开发接口的方法执行拦截器,用于为所述第一实例对象提供占用空间,也即为所述二次开发接口提供运行空间。
步骤S22,将所述目标拦截器插入所述第一实例对象中,以生成所述二次开发接口对应的动态代理对象。
作为一种示例,步骤S21至步骤S22包括:获取所述二次开发接口对应的配置信息,基于所述配置信息,定义所述二次开发接口的方法拦截器,以确定所述二次开发接口对应的目标拦截器,将所述目标拦截器插入所述第一实施对象中,以生成所述二次开发接口对应的动态代理对象。
其中,在所述动态创建目标业务中的二次开发接口对应的第一实例对象的步骤之前,所述业务开发方法还包括:
步骤S11,获取所述二次开发接口对应的接口实现和所述二次开发接口对应的描述信息;
步骤S12,基于所述接口实现和所述描述信息之间的对应关系,设置所述二次开发接口对应的预设接口数据库。
作为一种示例,步骤S11至步骤S12包括:反射加载所述目标业务的程序集,获取所述二次开发接口对应的默认实现和二开实现;获取所述二次开发接口对应的描述信息;基于所述默认实现、所述二开实现和所述描述信息、确定所述默认实现和所述描述信息之间的默认实现对应关系以及所述二开实现和所述描述信息之间的二开实现对应关系,根据所述默认实现对应关系和所述二开实现对应关系,设置所述二次开发接口对应的预设接口数据库。本申请实施例通过获取二次开发接口对应的接口实现以及描述信息,从而根据二者的对应关系设置预设接口数据库,由于预设接口数据库中存储了大量二次开发接口所对应的接口实现,因此,开发人员能够通过预设接口数据库快捷的将自定义的业务逻辑实现到已有框架中,从而提高了业务开发的开发效率。
本申请实施例提供了一种接口实现查找方法,也即获取所述二次开发接口对应的至少一个描述信息;基于所述目标拦截器和所述描述信息,在所述预设接口数据库中查找所述二次开发接口对应的接口实现。本申请实施例通过提取二次开发接口的特有特征来作为描述信息,以描述信息为索引在预设接口数据库中查找二次开发接口所对应的接口实现,由于预设接口数据库中记录的是二次开发接口的描述信息和接口实现之间的对应关系,因此,能够精准的找到二次开发接口对应的描述信息,提高了检索的准确度。
实施例三
本申请实施例还提供一种业务开发装置,参照图4,所述业务开发装置包括:
动态创建模块10,用于动态创建目标业务中的二次开发接口对应的第一实例对象;
动态代理对象生成模块20,用于根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;
接口实现查找模块30,用于基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;
业务开发模块40,用于根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。
可选地,所述业务开发模块40还包括:
检测所述接口实现中是否包含二开实现;
若是,则基于所述二开实现,反射调用所述动态代理对象,对所述目标业务进行开发;
若否,则基于所述默认实现,反射调用所述动态代理对象,对所述目标业务进行开发。
可选地,所述业务开发模块40还包括:
通过反射加载所述二开实现中的程序集,创建所述二开实现对应的第二实例对象;
依据所述二次开发接口和所述二开实现,生成所述二次开发接口对应的目标参数对象;
根据所述第二实例对象和所述目标参数对象,反射调用所述动态代理对象,对所述目标业务进行开发。
可选地,所述业务开发模块40还包括:
获取所述二次开发接口对应的第一参数对象和所述二开实现对应的第二参数对象;
将所述第一参数对象序列化成所述第二参数对象,以生成所述二次开发接口对应的目标参数对象。
可选地,所述接口实现查找模块30还包括:
获取所述二次开发接口对应的至少一个描述信息;
基于所述目标拦截器和所述描述信息,在所述预设接口数据库中查找所述二次开发接口对应的接口实现。
可选地,所述动态代理对象生成模块20还包括:
通过定义所述二次开发接口的方法拦截器,确定所述二次开发接口对应的目标拦截器;
将所述目标拦截器插入所述第一实例对象中,以生成所述二次开发接口对应的动态代理对象。
可选地,所述业务开发装置还包括:
获取所述二次开发接口对应的接口实现和所述二次开发接口对应的描述信息;
基于所述接口实现和所述描述信息之间的对应关系,设置所述二次开发接口对应的预设接口数据库。
本申请提供的业务开发装置,采用上述实施例中的业务开发方法,解决了业务开发的稳定性差的技术问题。与现有技术相比,本申请实施例提供的业务开发装置的有益效果与上述实施例提供的业务开发方法的有益效果相同,且该业务开发装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
实施例四
本申请实施例提供一种电子设备,所述电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的业务开发方法。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)中的程序或者从存储装置加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
通常,以下系统可以连接至I/O接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
本申请提供的电子设备,采用上述实施例一或实施例二中的业务开发方法,解决了业务开发的稳定性差的技术问题。与现有技术相比,本申请实施例提供的电子设备的有益效果与上述实施例一提供的业务开发方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
实施例五
本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的业务开发的方法。
本申请实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:动态创建目标业务中的二次开发接口对应的第一实例对象;根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种;根据所述接口实现和所述动态代理对象,对所述目标业务进行开发。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本申请提供的计算机可读存储介质,存储有用于执行上述业务开发方法的计算机可读程序指令,解决了业务开发的稳定性差的技术问题。与现有技术相比,本申请实施例提供的计算机可读存储介质的有益效果与上述实施例提供的业务开发方法的有益效果相同,在此不做赘述。
实施例六
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的业务开发方法的步骤。
本申请提供的计算机程序产品解决了业务开发的稳定性差的技术问题。与现有技术相比,本申请实施例提供的计算机程序产品的有益效果与上述实施例提供的业务开发方法的有益效果相同,在此不做赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。
Claims (9)
1.一种业务开发方法,其特征在于,所述业务开发方法包括:
动态创建目标业务中的二次开发接口对应的第一实例对象;
根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;
基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种,所述二开实现用于所述二次开发接口在扩展模块中对业务进行开发,所述默认实现用于所述二次开发接口在应用站点中对业务进行开发;
根据所述接口实现和所述动态代理对象,对所述目标业务进行开发;
其中,所述根据所述接口实现和所述动态代理对象,对所述目标业务进行开发的步骤包括:
检测所述接口实现中是否包含二开实现;
若是,则基于所述二开实现,反射调用所述动态代理对象,对所述目标业务进行开发;
若否,则基于所述默认实现,反射调用所述动态代理对象,对所述目标业务进行开发。
2.如权利要求1所述业务开发方法,其特征在于,所述基于所述二开实现,反射调用所述动态代理对象,对所述目标业务进行开发的步骤包括:
通过反射加载所述二开实现中的程序集,创建所述二开实现对应的第二实例对象;
依据所述二次开发接口和所述二开实现,生成所述二次开发接口对应的目标参数对象;
根据所述第二实例对象和所述目标参数对象,反射调用所述动态代理对象,对所述目标业务进行开发。
3.如权利要求2所述业务开发方法,其特征在于,所述依据所述二次开发接口和所述二开实现,生成所述二次开发接口对应的目标参数对象的步骤包括:
获取所述二次开发接口对应的第一参数对象和所述二开实现对应的第二参数对象;
将所述第一参数对象序列化成所述第二参数对象,以生成所述二次开发接口对应的目标参数对象。
4.如权利要求1所述业务开发方法,其特征在于,所述基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现的步骤包括:
获取所述二次开发接口对应的至少一个描述信息;
基于所述目标拦截器和所述描述信息,在所述预设接口数据库中查找所述二次开发接口对应的接口实现。
5.如权利要求1所述业务开发方法,其特征在于,所述根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象的步骤包括:
通过定义所述二次开发接口的方法拦截器,确定所述二次开发接口对应的目标拦截器;
将所述目标拦截器插入所述第一实例对象中,以生成所述二次开发接口对应的动态代理对象。
6.如权利要求1所述业务开发方法,其特征在于,在所述动态创建目标业务中的二次开发接口对应的第一实例对象的步骤之前,所述业务开发方法还包括:
获取所述二次开发接口对应的接口实现和所述二次开发接口对应的描述信息;
基于所述接口实现和所述描述信息之间的对应关系,设置所述二次开发接口对应的预设接口数据库。
7.一种业务开发装置,其特征在于,所述业务开发装置包括:
动态创建模块,用于动态创建目标业务中的二次开发接口对应的第一实例对象;
动态代理对象生成模块,用于根据所述第一实例对象和所述二次开发接口对应的目标拦截器,生成所述二次开发接口对应的动态代理对象;
接口实现查找模块,用于基于所述目标拦截器,在预设接口数据库中查找所述二次开发接口对应的接口实现,其中,所述接口实现至少包括二开实现和默认实现中的一种,所述二开实现用于所述二次开发接口在扩展模块中对业务进行开发,所述默认实现用于所述二次开发接口在应用站点中对业务进行开发;
业务开发模块,用于根据所述接口实现和所述动态代理对象,对所述目标业务进行开发;
其中,所述业务开发模块还包括:
检测所述接口实现中是否包含二开实现;
若是,则基于所述二开实现,反射调用所述动态代理对象,对所述目标业务进行开发;
若否,则基于所述默认实现,反射调用所述动态代理对象,对所述目标业务进行开发。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至6中任一项所述的业务开发方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现业务开发方法的程序,所述实现业务开发方法的程序被处理器执行以实现如权利要求1至6中任一项所述业务开发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211452469.XA CN115658276B (zh) | 2022-11-21 | 2022-11-21 | 业务开发方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211452469.XA CN115658276B (zh) | 2022-11-21 | 2022-11-21 | 业务开发方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115658276A CN115658276A (zh) | 2023-01-31 |
CN115658276B true CN115658276B (zh) | 2023-05-26 |
Family
ID=85019849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211452469.XA Active CN115658276B (zh) | 2022-11-21 | 2022-11-21 | 业务开发方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115658276B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157800A1 (en) * | 2007-12-18 | 2009-06-18 | Cheng-Chieh Cheng | Dynamically Generating a Proxy Object in a Client for Dynamically Created Object on the Server Using Retrieved Class Metadata of the Object |
US8402431B2 (en) * | 2008-04-09 | 2013-03-19 | Renesas Electronics America Inc. | System and method for communicating with a microcontroller |
CN105373536B (zh) * | 2014-08-19 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种实现dao接口的方法及装置 |
CN113867832B (zh) * | 2021-09-15 | 2024-04-02 | 广州云徙科技有限公司 | 动态修改业务数据逻辑方法、系统、计算机设备及介质 |
-
2022
- 2022-11-21 CN CN202211452469.XA patent/CN115658276B/zh active Active
Non-Patent Citations (1)
Title |
---|
张璟.关于SAP ERP系统二次开发的需求与实现.山西冶金.2015,(02),第61-63页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115658276A (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062563B (zh) | 用于生成页面的方法和装置 | |
CN112036824A (zh) | 业务审批方法、系统、存储介质及电子设备 | |
CN109062572B (zh) | 一种组件调用方法、装置、设备及存储介质 | |
US11741002B2 (en) | Test automation systems and methods using logical identifiers | |
CN109726217B (zh) | 一种数据库操作方法、装置、设备及存储介质 | |
US7974829B2 (en) | System for simulating mobile phone and method thereof | |
CN113971037A (zh) | 应用处理方法、装置、电子设备及存储介质 | |
CN111309304B (zh) | 一种生成idl文件的方法、装置、介质和电子设备 | |
CN111338944B (zh) | 远程过程调用rpc接口测试方法、装置、介质及设备 | |
US20240095022A1 (en) | Hotfix method, apparatus, device and storage medium | |
CN110489158B (zh) | 对代码托管平台进行优化的方法、装置、介质和电子设备 | |
CN114153473A (zh) | 模块集成方法、装置、存储介质及电子设备 | |
CN114020323A (zh) | 模型处理方法、代码获得方法、装置以及电子设备 | |
CN115658276B (zh) | 业务开发方法、装置、电子设备及可读存储介质 | |
WO2022184077A1 (zh) | 文档编辑的方法、装置、终端及非暂时性存储介质 | |
CN111666068B (zh) | 一种平台开发框架、构建方法、设备及介质 | |
CN111158645B (zh) | 提供集成开发环境的系统和方法 | |
CN112596729A (zh) | 目标应用界面生成方法及装置、可读介质和电子设备 | |
CN115658374B (zh) | 平台兼容性问题修复方法、装置、电子设备及存储介质 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
CN112688863B (zh) | 网关数据处理方法、装置及电子设备 | |
US20230393820A1 (en) | MVVM Architecture-Based Application Development Method and Terminal | |
CN116009951A (zh) | 代码处理方法、装置、设备及存储介质 | |
CN117649459A (zh) | 图像绘制方法、数据生成方法和装置 | |
CN117234502A (zh) | 页面渲染方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |