本申请涉及计算机技术领域,特别涉及一种基于组件的活动应用管理方法、系统、设备及可读存储介质。
背景技术:
随着互联网不断的发展,越来越多的用户都涌入到互联网的浪潮中,运营商们为了吸引源源不断的用户,不仅仅满足于用已有的应用去吸引用户。运营商们也会不断的更新应用的玩法,甚至有些运营商直接推出比较有创新的应用吸引客户。
伴随着应用不断的迭代更新,甚至推出多样化的、有创新的应用,应用的开发商们或者是企业内部的it部门会遇到以下令人头疼的问题:
在应用更新迭代时,业务会有各种各样的需求,多样化的需求会导致:为了适配业务提出的定制化需求,降低整体系统的扩展性;反复修改同一种应用,容易引入bug,甚至严重者可能会因为新的需求导致原本可以运行的应用直接出现异常。
在推出有创新性的应用时,又会导致以下问题:开发人员需要开发一套新的应用流程,导致整体的开发周期长,开发效率较低;虽然为创新性的应用,但是应用后台管理的配置页及消费者端的活动玩法的一些规则的校验项均可能会和之前开发的应用类似,会导致整体的代码复用率不高、不易维护,且会有引入新的bug的风险;除此以外,不管是因为新需求修改原有的应用还是直接开发新的应用,都避免不了每次发布应用都需要重新构建及部署,会导致一段时间的服务不可用。
综上,目前应用开发周期长,代码复用率低,导致开发效率较低,无法满足当下需求。
技术实现要素:
本申请的目的是提供一种基于组件的活动应用管理方法、系统、设备及可读存储介质,用以解决以上至少一个问题。其具体方案如下:
第一方面,本申请提供了一种基于组件的活动应用管理方法,包括:
加载活动组件和活动模板;
根据选择指令确定目标活动组件,并将所述目标活动组件添加至所述活动模板中;
响应于应用构建指令,根据所述目标活动组件和所述活动模板创建目标活动应用。
可选的,在所述根据所述目标活动组件和所述活动模板创建目标活动应用之后,还包括:
将所述目标活动应用发布至应用市场中。
可选的,所述根据选择指令确定目标活动组件,并将所述目标活动组件添加至所述活动模板中,包括:
根据拖拉拽操作生成相应的选择指令,根据所述选择指令确定目标活动组件,并将所述目标活动组件添加至所述活动模板中。
可选的,还包括:
根据添加指令,将新增的活动组件添加至系统中。
可选的,所述活动模板至少包括基本信息模板、规则模板、权益模板、商品模板和模板信息落库模板的一种或多种,所述活动组件至少包括基本信息组件、规则组件、权益组件和商品组件的一种或多种。
可选的,在所述根据所述目标活动组件和所述活动模板创建目标活动应用之后,还包括:
根据应用更新指令,将预设活动组件动态加载至所述目标活动应用中。
可选的,所述根据应用更新指令,将预设活动组件动态加载至所述目标活动应用中,包括:
根据所述应用更新指令中携带的url地址,加载预设活动组件的jar包;
对所述jar包进行扫描,生成相应的bean并注册至目标spring容器中;
加载预设xml文件并进行扫描,生成相应的bean并注册至所述目标spring容器中,其中所述预设xml文件为数据库服务文件。
第二方面,本申请提供了一种基于组件的活动应用管理系统,包括:
加载模块,用于加载活动组件和活动模板;
选择模块,用于根据选择指令确定目标活动组件,并将所述目标活动组件添加至所述活动模板中;
构建模块,用于响应于应用构建指令,根据所述目标活动组件和所述活动模板创建目标活动应用。
第三方面,本申请提供了一种基于组件的活动应用管理设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的基于组件的活动应用管理方法。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于组件的活动应用管理方法。
本申请所提供的一种基于组件的活动应用管理方法,包括:加载活动组件和活动模板;根据选择指令确定目标活动组件,并将目标活动组件添加至活动模板中;响应于应用构建指令,根据目标活动组件和活动模板创建目标活动应用。可见,该方法以活动组件为基础构建活动应用,在加载活动组件之后,开发者可以根据开发需求将相应的活动组件添加至活动模板中,之后下发应用创建指令即可触发应用构建过程。通过这种方式,一方面,同一活动组件可以组装成多种活动应用,显著提升了代码复用率,加快开发效率;另一方面,这种基于活动组件创建活动应用的方式,有利于实现活动组件的动态加载,无需每次更新应用都中断服务,提升应用扩展性的同时减少bug的引入,进一步提升了开发效率。
此外,本申请还提供了一种基于组件的活动应用管理系统、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的基于组件的活动应用管理方法实施例一的流程图;
图2为本申请所提供的基于组件的活动应用管理方法实施例二的流程图;
图3为本申请所提供的基于组件的活动应用管理方法实施例二中步骤s25的细化流程图;
图4为活动组件编排流程图;
图5为抽奖活动流程图;
图6为本申请所提供的基于组件的活动应用管理系统实施例的架构图;
图7为本申请所提供的基于组件的活动应用管理设备实施例的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前用户需求旺盛,应用需要不断迭代更新,然而,当下的应用创建和更新方案中存在以下问题:
(1)新活动应用开发周期长;
(2)代码复用率较低;
(3)活动应用扩展性不高。
针对以上问题,本申请提供了一种基于组件的活动应用管理方法、系统、设备及可读存储介质,能够基于活动组件创建活动应用,提升了代码复用率,实现了活动组件的动态加载,提升应用扩展性的同时减少bug的引入,显著提升了开发效率。
下面对本申请提供的基于组件的活动应用管理方法实施例一进行介绍,参见图1,实施例一包括:
s11、加载活动组件和活动模板;
s12、根据选择指令确定目标活动组件,并将目标活动组件添加至活动模板中;
s13、响应于应用构建指令,根据目标活动组件和活动模板创建目标活动应用。
具体的,开发者预先开发一些活动组件并添加至系统中。在需要构建活动应用时,开发者进入管理页面,管理页面自动加载系统中的活动组件以及活动模板,然后开发者可以自由选择活动组件并将其添加至活动模板中,最终开发者确认开始构建应用,本实施例自动根据开发者选择的活动组件和活动模板构建出相应的活动应用。之后,可以进一步将活动应用发布至应用市场中,用户可以从应用市场下载该活动应用并自由使用。
作为一种具体的实施方式,开发者可以通过拖拉拽操作选择活动组件,并将活动组件添加至活动模板中。在实际应用中,活动组件可以分为以下四类:基本信息组件、规则组件、权益组件和商品组件,相应的,活动模板可以分为:基本信息模板、规则模板、权益模板、商品模板以及前述四类模板的信息落库模板。开发者在选择活动组件时,将活动组件添加至同类的活动模板中,例如将基本信息组件添加至基本信息模板,将规则组件添加至规则模板。
在实际应用中,如果缺乏活动组件,开发者可以开发出新的活动组件并将其添加至系统中。具体的,根据开发者发出的添加指令,将新增的活动组件添加至系统中。当然,开发者也可以对系统中的活动组件进行删除或修改。
本实施例所提供一种基于组件的活动应用管理方法,以活动组件为基础构建活动应用,在加载活动组件之后,开发者可以根据开发需求将相应的活动组件添加至活动模板中,之后下发应用创建指令即可触发应用构建过程。因此,本实施例至少具备以下优点:
1、同一活动组件可以组装成多种活动应用,提升了代码复用率;
2、提升应用扩展性,且减少bug的引入。
下面开始详细介绍本申请提供的基于组件的活动应用管理方法实施例二,实施例二以前述实施例一为基础,并在实施例一的基础上进行了一定程度上的拓展。
具体的,实施例一仅对应用创建过程进行了介绍,本实施例将进一步介绍基于组件的应用更新过程。
参见图2,实施例二具体包括以下步骤:
s21、加载活动组件和活动模板;
s22、根据拖拉拽操作,将目标活动组件添加至活动模板中;
s23、响应于应用构建指令,根据目标活动组件和活动模板创建目标活动应用;
s24、将目标活动应用发布至应用市场中;
s25、根据应用更新指令,将预设活动组件动态加载至目标活动应用中。
本实施例中,系统包括活动模板、活动组件、应用市场。在创建活动应用时,本实施例以活动模板为基础,通过活动组件的流程编排组装成为一个新的活动应用,经过审批之后该活动应用上架到应用市场,然后运营商在应用市场中选购自己需要的活动应用。实际应用时,系统中会有大量的活动组件,因此可以通过活动组件进行编排生成新的活动应用,如果活动组件缺失,开发者只需开发预期的活动组件去支持新的活动应用即可,无需搭建整个应用架构,所以可以节省大量开发工作量。
上述步骤s25具备包括以下子步骤,如图3所示:
s31、根据所述应用更新指令中携带的url地址,加载预设活动组件的jar包;
s32、对jar包进行扫描,生成相应的bean并注册至目标spring容器中;
s33、加载预设xml文件并进行扫描,生成相应的bean并注册至目标spring容器中。
可以理解的是,活动组件本质就是一段代码块,步骤s25的目的是要将代码块动态加载到已经发布的目标活动应用中。具体过程展开为:将活动组件打包并上传至仓库中;在需要更新活动应用中,开发者指定待加载至活动应用的预设活动组件在仓库中的url地址,并下发应用更新指令;然后,加载该url地址上的jar包并对其进行扫描,生成bean并注册到目标spring容器中,所谓目标spring容器即用于运行目标活动应用的容器;上述jar包仅仅包含业务流程信息,实际更新应用时,还需要添加相应的数据库服务,所以本实施例加载预设xml文件并进行扫描,生成相应的bean并注册至目标spring容器中。
作为一种具体的实施方式,可以选用urlclassloader类加载器加载url地址上的jar包;可以选过springboot中的classpathmapperscanner扫描器扫描jar包;可以选用自定义的scanner加载扫描预设xml文件,之后dynamicbeandefinitionscanner通过继承classpathbeandefinitionscanner,扫描所有带有component的类,生成bean并注册到spring容器中。
综上,本实施例主要涉及到两方面:(1)将活动组件串联为活动应用的过程;(2)活动应用动态加载活动组件的过程。其中,将活动组件串联为活动应用的过程进一步分为:后台管理页面创建活动应用流程和消费者端的消费者参与活动的流程,下面简述这两个流程的实现:
后台管理页面创建活动应用流程:在后台管理页面,运营人员可以通过活动模板(包括基本信息模板、规则模板、权益模板、商品模板、以及前述四类模板的信息落库模板)将一些获得组件(包括基本信息组件、规则组件、权益组件、商品组件等)通过拖拉拽的方式添加到获得模板中,形成为活动应用。具体的流程如图4所示,首先获取活动应用的活动组件列表,然后分别执行基本信息组件、规则组件、权益组件和商品组件,执行完各类活动组件之后,需要保存活动信息,即分别保存基本信息、规则信息、权益信息和商品信息,最终活动应用创建完成,可以向开发者发送创建完成的消息,开发者接收该消息。
消费者端的消费者参与活动的流程:以抽奖活动为例,在消费者端消费者参与活动的流程涉及到的流程主要有活动准入校验、抽奖、开奖、领奖4个步骤,如图5所示。每个步骤中都会有对应的活动组件编排的流程和保存行为数据的过程(活动准入校验流程不涉及到过程数据落库)。具体流程如下:首先进行活动准入检验流程,获取活动校验组件链并执行每个组件;然后进入抽奖流程,获取活动抽奖组件链并执行每个组件,之后保存抽奖数据,如活动抽奖记录和活动抽奖扩展数据;再进入开奖流程,获取活动开奖组件链并执行每个组件,保存活动开奖记录和活动开奖扩展数据;最终进入领奖流程,获取活动领奖组件链并执行每个组件,保存活动组件领奖记录和活动领奖扩展数据。
可见,本实施例提供的一种基于组件的活动应用管理方法,至少具备以下优点:
1、采用以活动组件为基础的活动应用的架构体系,扩展性高;
2、不需要全部重新开发,代码复用率高;
3、一切都基于活动组件实现,在保证复用率的情况下,减少bug的引入;
4、当组件数量足够大时,通过活动组件编排活动应用,可以编排出大量新的活动应用,满足多种定制化需求,大量缩短开发周期;
5、支持动态的插拔活动组件,可以动态加载活动组件至已发布的活动应用,不需要每次都重新部署重启服务。
下面对本申请实施例提供的基于组件的活动应用管理系统进行介绍,下文描述的基于组件的活动应用管理系统与上文描述的基于组件的活动应用管理方法可相互对应参照。
如图6所示,本实施例的基于组件的活动应用管理系统,包括:
加载模块61,用于加载活动组件和活动模板;
选择模块62,用于根据选择指令确定目标活动组件,并将所述目标活动组件添加至所述活动模板中;
构建模块63,用于响应于应用构建指令,根据所述目标活动组件和所述活动模板创建目标活动应用。
本实施例的基于组件的活动应用管理系统用于实现前述的基于组件的活动应用管理方法,因此该系统的具体实施方式可见前文中的基于组件的活动应用管理方法的实施例部分,例如,加载模块61,选择模块62,构建模块63,分别用于实现上述基于组件的活动应用管理方法中步骤s11,s12,s13。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的基于组件的活动应用管理系统用于实现前述的基于组件的活动应用管理方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种基于组件的活动应用管理设备,如图7所示,包括:
存储器100:用于存储计算机程序;
处理器200:用于执行所述计算机程序,以实现如上文所述的基于组件的活动应用管理方法。
最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的基于组件的活动应用管理方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。