一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

拼搭工程生成方法、装置、设备、介质和程序产品与流程

2022-07-31 08:52:08 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体软件开发技术领域,更具体地涉及一种拼搭工程生成方法、装置、设备、介质和程序产品。


背景技术:

2.在多方合作开发时,所采取的开发方式通常是基于通用代码模板进行开发。但是,现有的通用代码模板存在粒度过大、灵活度不足等诸多缺点,这些缺点进一步影响了多方合作开发时的开发效率,使得现有技术无法满足日益增长的多方合作开发的需求。
3.因此,如何进一步提升多方合作开发的效率成为亟待解决的技术问题。


技术实现要素:

4.鉴于上述问题,本公开提供了提高软件开发效率的拼搭工程生成方法、装置、设备、介质和程序产品。
5.根据本公开的第一个方面,提供了一种拼搭工程生成方法,包括:响应于请求变量,提取所述请求变量中的请求组件列表、工程依赖坐标以及请求变量配置信息;根据所述请求组件列表获取对应的组件元数据,所述组件元数据包括组件依赖坐标和组件模板配置信息;根据所述工程依赖坐标和多个所述组件依赖坐标进行组装,得到工程模型文件;根据所述请求变量配置信息和所述组件模板配置信息进行配置处理,得到工程相关文件,所述工程相关文件包括工程配置文件和工程代码文件;以及根据所述工程模型文件、所述工程配置文件和所述工程代码文件生成拼搭工程。
6.根据本公开的实施例,所述组件模板配置信息包括:通用配置模板、自定义配置模板、自定义代码模板以及注解信息模板。
7.根据本公开的实施例,所述根据所述请求变量配置信息和所述组件模板配置信息进行配置处理,得到工程相关文件,包括:获取通用配置模板和自定义配置模板;基于所述请求变量配置信息中所有配置项的变量,替换所述通用配置模板和所述自定义配置模板中相应配置项的变量,得到通用配置文件和自定义配置文件。
8.根据本公开的实施例,其中,所述通用配置文件中的配置项至少包括策略序号,所述策略序号用以实现不同组件的配置策略,所述配置策略至少包括替换配置策略和分开配置策略,
9.在所述基于所述请求变量配置信息配置所述通用配置模板和所述自定义配置模板中对应的变量,得到通用配置文件和自定义配置文件后,还包括:遍历待拼搭的所述组件元数据中的所有配置项;判断不同组件的配置项间是否存在相同配置项的变量;以及在不同组件的配置项间存在相同配置项的变量的情况下,基于避免配置冲突的原则配置所述策略序号。
10.根据本公开的实施例,所述根据所述请求变量配置信息和所述组件模板配置信息进行配置处理,得到工程相关文件,包括:对于所述工程代码文件,提取不同组件的自定义
代码模板;对不同组件中的所述自定义代码模板和所述注解信息模板进行拼搭,得到第一工程代码文件;以及修改所述第一工程代码文件中的不同组件的所述注解信息模板,得到所述工程代码文件。
11.根据本公开的实施例,所述组件元数据的类别包括:中间件接入组件、接口调用适配构件、处理链限流组件、处理链灰度路由组件、处理链业务防重组件、异步任务组件以及加解密组件。
12.根据本公开的第二方面,提供了一种拼搭工程生成装置,包括:请求变量提取模块、组件元数据匹配模块、坐标组装模块、工程配置模块以及拼搭工程生成模块,其中,所述请求变量提取模块,用于响应于请求变量,提取所述请求变量中的请求组件列表、工程依赖坐标以及请求变量配置信息;所述组件元数据匹配模块,用于根据所述请求组件列表获取对应的组件元数据,所述组件元数据包括组件依赖坐标和组件模板配置信息;所述坐标组装模块,用于根据所述工程依赖坐标和多个所述组件依赖坐标进行组装,得到工程模型文件;所述工程配置模块,根据所述请求变量配置信息和所述组件模板配置信息进行配置处理,得到工程相关文件,所述工程相关文件包括工程配置文件和工程代码文件;以及所述拼搭工程生成模块,用于根据所述工程模型文件、所述工程配置文件和所述工程代码文件生成拼搭工程。
13.根据本公开的实施例,所述组件模板配置信息包括:通用配置模板、自定义配置模板、自定义代码模板以及注解信息模板。
14.根据本公开的实施例,所述工程配置模块,还用于获取通用配置模板和自定义配置模板;基于所述请求变量配置信息中所有配置项的变量,替换所述通用配置模板和所述自定义配置模板中相应配置项的变量,得到通用配置文件和自定义配置文件。
15.根据本公开的实施例,其中,所述通用配置文件中的配置项至少包括策略序号,所述策略序号用以实现不同组件的配置策略,所述配置策略至少包括替换配置策略和分开配置策略,所述工程配置模块,还用于遍历待拼搭的所述组件元数据中的所有配置项;判断不同组件的配置项间是否存在相同配置项的变量;以及在不同组件的配置项间存在相同配置项的变量的情况下,基于避免配置冲突的原则配置所述策略序号。
16.根据本公开的实施例,所述工程配置模块,还用于提取不同组件的自定义代码模板;对不同组件中的所述自定义代码模板和所述注解信息模板进行拼搭,得到第一工程代码文件;以及修改所述第一工程代码文件中的不同组件的所述注解信息模板,得到所述工程代码文件。
17.根据本公开的实施例,所述组件元数据的类别包括:中间件接入组件、接口调用适配构件、处理链限流组件、处理链灰度路由组件、处理链业务防重组件、异步任务组件以及加解密组件。
18.本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述拼搭工程生成方法。
19.本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述拼搭工程生成方法。
20.本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程
序被处理器执行时实现上述拼搭工程生成方法。
附图说明
21.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
22.图1示意性示出了根据本公开实施例的拼搭工程生成方法、装置、设备、介质和程序产品的应用场景图;
23.图2示意性示出了根据本公开实施例的拼搭工程生成方法的流程图;
24.图3示意性示出了根据本公开实施例的工程配置文件生成方法的流程图;
25.图4示意性示出了根据本公开实施例的工程代码文件生成方法的流程图;
26.图5示意性示出了根据本公开实施例的策略配置的流程图;
27.图6示意性示出了根据本公开实施例的拼搭工程生成装置的结构框图;以及
28.图7示意性示出了根据本公开实施例的适于实现拼搭工程生成方法的电子设备的方框图。
具体实施方式
29.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
30.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
31.在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
32.在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
33.在对本公开进行详细阐述之前,本公开用到的关键术语的介绍如下:
34.元数据:对于组成组件的各种要素统称为元数据,例如源代码、第三方依赖坐标、配置文件等。
35.拼搭:特指对构成不同框架、组件示例代码的元数据进行组合。
36.拼搭工程:一种基于拼搭的软件工程,一般包括多个工程文件。
37.变量:特指拼搭中依赖具体需求的配置项。
38.脚手架:将不同框架、组件进行组装的代码编排引擎。
39.低代码原则:指开发者无需编码或通过少量代码快速生成工程/应用的原则。
40.maven:项目对象模型,通过描述信息完成项目的构建。
41.spring:一种软件开发框架。
42.java虚拟机:(java virtual machine,jvm),一个虚构的计算机,使得java语言在不同平台上运行时不需要重新编译。
43.现有技术中,银行与合作方交互应用的编码开发,通常会使用一套统一的java端开发框架(spring boot或者其他自研框架),使用通用的开发组件(加解密组件、交易限流组件、报文转换组件、数据库连接组件、rpc框架等等),而且在长期形成的标准化代码结构下,通常都可以形成一套统一的、适用于不同应用的代码模板,编码过程通常都是参考使用手册,结合通用实例工程模板进行二次开发。
44.而在业内主流技术中(例如spring社区、阿里云社区等),大多使用一种代码自动生成脚手架,将不同组件进行拼搭,即提供了组件级别的支持。组件级别的生命周期:组件引入、组件配置、功能开发、线上运维。spring社区目前只实现了“组件引入”这一功能,即将不同组件的依赖坐标进行装配。阿里云社区在解决“组件引入”问题的基础上,将组件的电箱使用方法、样例代码加入到了工程中,为每个组件提供单独的示例代码和内置的配置样例。
45.现有技术中,在多方合作开发场景下,特别是银行与合作方交互应用的开发场景下,通常基于通用代码模板的进行开发的方式,存在以下缺点:
46.1.模板较重、较复杂,模板内部之间耦合度高,难以根据实际需求灵活选择不同组件进行搭配,即模板内部组件的裁剪、解耦成本高。
47.2.通用代码模板难以进行组件扩展,往往需要在熟悉原模板代码的基础之上,学习新的组件,还要解决新组建和模板的兼容性问题,才可以对模板进行扩展,成本太高。
48.3.基于通用代码模板的开发方式难以满足当下的开发要求,在微服务、敏捷开发、精益开发模式大行其道的当下,银行业常用的模板代码开发方式已经很难满足小、灵、块的开发需求。
49.为解决现有技术中通用模板粒度过大以及拓展性不足的技术问题,本公开的实施例提供了一种拼搭工程生成方法,响应于请求变量,提取所述请求变量中的请求组件列表、工程依赖坐标以及请求变量配置信息;根据所述请求组件列表获取对应的组件元数据,所述组件元数据包括组件依赖坐标和组件模板配置信息;根据所述工程依赖坐标和多个所述组件依赖坐标进行组装,得到工程模型文件;以及根据所述请求变量配置信息和所述组件模板配置信息进行配置处理,得到工程相关文件,所述工程相关文件包括工程配置文件和工程代码文件。
50.在本公开的实施例中,基于项目需求自由选择预先配置的组件元数据,通过组装依赖坐标以及配置工程相关文件,实现了组件之间的自由拼搭,取代了原有固定模板的开发方式,满足低代码原则的同时提升了开发的灵活度,使得该拼搭工程生成方法具有更加高效的开发效率以及更加广泛的应用场景。
51.图1示意性示出了根据本公开实施例的拼搭工程生成方法的应用场景图。
52.如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103、网络104以及服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
53.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
54.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
55.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
56.需要说明的是,本公开实施例所提供的拼搭工程生成方法一般可以由服务器105执行。相应地,本公开实施例所提供的拼搭工程生成装置一般可以设置于服务器105中。本公开实施例所提供的拼搭工程生成方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的拼搭工程生成装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
57.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
58.以下将基于图1描述的场景,通过图2~图5对公开实施例的拼搭工程生成方法进行详细描述。
59.图2示意性示出了根据本公开实施例的拼搭工程生成方法的流程图。
60.如图2所示,该实施例的拼搭工程生成方法包括操作s210~操作s250,该拼搭工程生成方法可以服务器105执行。
61.在操作s210中,响应于请求变量,提取所述请求变量中的请求组件列表、工程依赖坐标以及请求变量配置信息。
62.根据本公开的实施例,所述组件元数据的类别包括:中间件接入组件、接口调用适配构件、处理链限流组件、处理链灰度路由组件、处理链业务防重组件、异步任务组件、加解密组件。在本公开的实施例中,多种类型的组件增加了本公开的应用场景,提高本公开的泛化能力。
63.具体地,对拼搭工程的创建可采用例如是maven或gradle等常用于组件拼搭的工具。
64.需要说明的是,在操作s210之前,需要对请求变量进行配置。例如,请求变量的配置过程可以是:开发人员在前端选择本次工程所需要的待拼搭组件,其中,所述前端包括拼搭页面,该拼搭页面提供了可以进行拼搭的各种组件。在挑选完成之后,针对所有待拼搭的组件,会生成本次工程对应的请求变量,此时的请求变量为未被编辑的请求变量,再根据项目工程的需要对该未被编辑的请求变量其进行编辑,即可生成请求变量。
65.一般来说,对所述请求变量的编辑包括:工程的基本信息、请求组件列表以及待配置组件的请求变量配置信息。所述工程的基本信息包括工程名称、工程的描述以及工程依赖坐标,所述请求组件列表包括:组件id和组件名称,待配置组件的所述请求变量配置信息包括:变量组id、变量组名称、变量key和输入变量值。
66.例如,在java的实施环境中,所述工程的基本信息包括:工程名称:“test”、工程描述:“智能拼搭项目1.0”、工程依赖坐标“com.xxx.xxx:demo:1.0-snapshot”,其中,工程依赖坐标由包信息、唯一标识和版本号组成,包信息对应“com.xxx.xxx”,唯一标识对应“demo”,版本号对应“1.0-snapshot”。所述请求组件列表包括:组件id“10086”、组件名称“配置中心”。所述待配置组件的配置信息包括:变量组id:“10086”、变量组名称:“阿波罗配置中心”、变量key:“app_id”以及输入变量值:“284”,其中所述变量key为配置项的变量。还需要说明的是,不同类型组件中的配置项不同,因此针对不同的配置项的变量的格式以及取值均不同,对其进行的变量配置策略也有所不同。以加解密组件为例,在该组件的进行配置时,需要配置的配置项包括“内部加解密方式”、“内部算法方式”、“3des秘钥文件路径”以及“编码格式”,对上述配置项进行配置的变量则称之为请求变量中的待配置组件的配置信息,四个配置项则对应“变量key”,对每个配置项中的变量的配置则对应“输入变量值”。
67.具体地,在进行组件拼搭前,需要从数据库中调取并创建工程模板,该工程模板包括工程模型文件模板、工程配置文件模板以及工程代码文件模板,并限定了工程模型文件模板、工程配置文件模板以及工程代码文件模板存储的基本路径。在对工程模型文件模板、工程配置文件模板以及工程代码文件模板的内容进行修改时,遵循上述基本路径。
68.在操作s220中,根据所述请求组件列表获取对应的组件元数据,所述组件元数据包括组件依赖坐标和组件模板配置信息。
69.具体地,所述组件依赖坐标和所述工程依赖坐标同样包括包信息、唯一标识和版本号。在此不多做赘述。
70.根据本公开的实施例,所述组件模板配置信息包括:通用配置模板、自定义配置模板、自定义代码模板以及注解信息模板。具体地,也就是说,需要获取通用配置模板、自定义配置模板、自定义代码模板以及注解信息模板,才能实现后续的配置。
71.具体地,所述通用文件模板包括端口信息、策略序号、相关组件id以及相关组件配置块id等;所述配置文件模板包括:自定义配置文件拼搭路径和自定义配置文件存储路径等;所述实例代码模板包括:拼搭组件示例代码拼搭路径和所述拼搭组件示例代码存储路径等;所述注解配置模板包括启动声明和启动声明类等。
72.需要说明的是,每个组件元数据在数据库中都有自身的组件id,通过请求组件列表中需要选取的组件id匹配数据库中的组件元数据。通过请求组件列表从数据库中找到对应的组件元数据,这里的所述组件元数据可以看作是数据模板,根据请求变量中的不同数据对该数据模板中需要替换的数据进行替换,并完成对不同的组件元数据的拼搭操作。
73.在操作s230中,根据所述工程依赖坐标和多个所述组件依赖坐标进行组装,得到工程模型文件。
74.例如,对创建maven工程时得到的工程模型文件模板进行编辑,即在所述工程模型文件模板中对所述工程依赖坐标和多个所述组件依赖坐标进行组装,得到工程模型文件pom.xml。实际上,工程模型文件pom.xml为构成maven工程的基础文件,主要用于管理依赖关系。
75.在操作s240中,根据所述请求变量配置信息和所述组件模板配置信息进行配置处理,得到工程相关文件,所述工程相关文件包括工程配置文件和工程代码文件。
76.具体地,对已创建的工程模型文件模板进行编辑,即在所述工程模型文件模板中
对所述工程依赖坐标和多个所述组件依赖坐标进行组装,得到工程模型文件。
77.在操作s250中,根据所述工程模型文件、所述工程配置文件和所述工程代码文件生成拼搭工程。
78.具体地,拼搭工程(project)中必要的文件(即所述工程模型文件、所述工程配置文件和所述工程代码文件)在完成了创建与配置后,也就意味着一个可以执行的拼搭工程生成已完成。
79.在本公开的实施例中,基于项目需求自由选择预先配置的组件元数据,通过组装依赖坐标以及配置工程相关文件,实现了组件之间的自由拼搭,取代了原有固定模板的开发方式,满足低代码原则的同时提升了开发的灵活度,使得该拼搭工程生成方法具有更加高效的开发效率以及更加广泛的应用场景。
80.如图3所示,该实施例的工程配置文件生成方法包括操作s310~操作s320,该拼搭工程生成方法可以服务器105执行。
81.在操作s310中,获取通用配置模板和自定义配置模板。
82.具体地,通用配置模板和自定义配置模板中的相关配置项来源于本次拼搭工程所需要的组件元数据中,可以看做是工程配置文件模板中未配置的通用配置文件和自定义配置文件。需要获取通用配置模板和自定义配置模板,并对其中的配置项的变量进行配置,得到通用配置文件和自定义配置文件。
83.根据本公开的实施例,所述通用配置模板包括:策略序号、相关组件id以及相关组件配置块id。其中,所述策略序号对应不同组件的配置策略,所述配置策略至少包括替换配置策略和分开配置策略。
84.具体地,例如,在一个拼搭工程中存在待拼搭的组件a和组件b,对于通用配置模板中组件a部分,所述策略序号用于描述两组件之间的配置策略,即组件a与组件b的配置策略;所述相关组件id用于描述另一组件的id,即描述组件b的id;所述相关组件配置块id用于描述另一组件的配置块id,即组件b的配置块id。其中,用于配置所述通用配置文件拼搭路径的变量在拼搭工程创建时自动生成。
85.又例如,所述替换配置策略包括由组件a的某一配置项替换组件b的某一配置项,即组件a和组件b共同使用某一配置项。所述分开配置策略包括分开配置组件a的配置项和组件b的配置项,即组件a和组件b分开使用某一配置项。
86.根据本公开的实施例,所述自定义配置模板包括自定义配置文件拼搭路径和自定义配置文件存储路径。
87.具体地,例如,对于组件a的自定义配置模板,所述自定义配置文件拼搭路径用于规定拼搭后文件在数据库中的存储路径,所述自定义配置文件存储路径用于查找组件a(也就是组件元数据)在数据库中的存储路径。其中,用于配置所述自定义配置文件拼搭路径的变量在拼搭工程创建时自动生成。
88.在操作s320中,基于所述请求变量配置信息中所有配置项的变量,替换所述通用配置模板和所述自定义配置模板中相应配置项的变量,得到通用配置文件和自定义配置文件。
89.具体地,根据请求变量配合信息分别对所述通用配置模板和所述自定义配置模板中的配置项对应的变量进行配置,即对策略序号、相关组件id、相关组件配置块id、自定义
配置文件拼搭路径以及自定义配置文件存储路径对应的变量进行配置。至此,通用配置文件和自定义配置文件创建完成,即工程配置文件创建并配置完成。
90.在本公开的实施例中,通用配置文件规定了与相关配置的信息,自定义配置文件规定了相关的路径信息。通过替换的方式,实现高效率配置通用配置文件和自定义配置文件。
91.图4示意性示出了根据本公开的实施例的工程代码文件生成方法。
92.如图4所示,该实施例的拼搭工程生成方法包括操作s410~操作s430。
93.在操作s410中,提取不同组件的自定义代码模板。
94.在操作s420中,对不同组件中的所述自定义代码模板和所述注解信息模板进行拼搭,得到第一工程代码文件。
95.根据本公开的实施例,所述自定义代码模板包括示例代码、示例代码拼搭路径和示例代码存储路径。
96.具体地,例如,对于组件a的自定义代码模板,所述示例代码拼搭路径用于规定拼搭后实例代码在数据库中的存储路径,所述示例代码存储路径用于查找组件a的示例代码在数据库中的存储路径。其中,用于配置所述示例代码拼搭路径的变量在拼搭工程创建时自动生成。
97.根据本公开的实施例,所述注解信息模板包括注解声明以及注解声明类。
98.在操作s430中,修改所述第一工程代码文件中的不同组件的所述注解信息模板,得到所述工程代码文件。
99.具体地,修改所述注解信息模板,特别是对于一些启动入口类的注解,结合不同组件之间的依赖关系完成修改。在此不多做赘述。
100.至此,工程代码文件创建并配置完成。
101.根据本公开的实施例,还包括:在所述工程配置文件中添加启动参数。
102.例如,在java的实施环境中,需要进行添加jvm启动参数的操作。
103.需要说明的是,已配置的拼搭工程可以作为新的组件进行入库处理,对拼搭工程生成配置新的组件id,并将该工程中的工程依赖坐标作为组件依赖坐标,完成入库处理。在之后的其他拼搭项目中进行调取,将该拼搭工程生成作为组件元数据使用。使得该生成工程方法具有存量工程拼入新增组件的能力,提供了原应用上拼入新组件的能力,进一步提升本公开实施例的泛化能力。
104.在本公开的实施例中,对工程代码文件进行拼搭并完成注解配置,在实现代码层级的配置。提高了泛化性。
105.图5示意性示出了根据本公开实施例的策略配置的流程图。
106.如图5所示,该实施例的拼搭工程生成方法包括操作s510~操作s530。
107.需要说明的是,在操作s320中,对策略序号的变量配置仅仅是初步的,最终的策略序号的变量配置还需要进一步验证是否发生配置冲突的事件。
108.在操作s510中,遍历待拼搭的所述组件元数据中的所有配置项。
109.在操作s520中,判断不同组件的配置项间是否存在相同配置项的变量。
110.在操作s530中,在不同组件的配置项间存在相同配置项的变量的情况下,基于避免配置冲突的原则配置所述策略序号。
111.具体地,在不同的组件在组合时,可能会出现使用相同配置项的情况,这样的情况会存在配置冲突的隐患。例如,两组件都配置了对数据库进行操作的配置项,当然,配置项中的变量可能存在不同。在这种情况下,需要提供配置策略去解决这类问题。提供策略序号字段解决配置冲突的问题,不同的序号对应针对不同场景的配置策略,解决两个可能会冲突的配置项之间的配置问题,通过替换配置策略或分开配置策略,即两组件可以共同使用某一配置项或者分开使用各自配置项,可以基于实际情况进行相应的调整。一般情况下,策略序号对应的配置策略包括替换配置策略和分开配置策略,所述替换配置策略包括由该组件替换另一组件的配置项和由另一组件的配置项替换该组件的配置项,策略序号都默认为分开配置。
112.例如,当组件a与组件b在账号密码的配置项一致,在该场景下则造成重复配置,如果在对账号密码进行验证时会重复发送账号密码的信息,留下安全隐患。因此,在此实施场景下可以选择的配置策略为替换配置,使组件a和组件b共同使用同一配置项,进而完成在进行账号密码校验时不会引起冲突。
113.需要说明的是,在现有技术中,对比业内使用的脚手架开发模式,spring社区提供的脚手架太过简单,阿里云社区提供的脚手架虽然在功能上基本满足要求,但是这种互联网脚手架无法提供对银行与合作方交互应用所需特殊组件的支持,同时,阿里云脚手架为组件提供的是内置配置样例,无法在拼搭时预设配置项值,在配置这一块灵活度有所欠缺,同时对于多组件集成过程中可能出现的配置冲突问题,也没有提供解决方案,所以也无法满足银行与合作方交互应用拼搭的需求。
114.在本公开的实施例中,通过设置策略序号,约束组件间的配置冲突问题,避免配置冲突带来的不利影响。
115.基于上述拼搭工程生成方法,本公开还提供了一种拼搭工程生成装置。以下将结合图6对该装置进行详细描述。
116.图6示意性示出了根据本公开实施例的拼搭工程生成装置的结构框图。
117.如图6所示,该实施例的拼搭工程生成装置600包括请求变量提取模块610、组件元数据匹配模块620、坐标组装模块630、工程配置模块640以及拼搭工程生成模块650。
118.所述请求变量提取模块610,用于响应于请求变量,提取所述请求变量中的请求组件列表、工程依赖坐标以及请求变量配置信息。在一实施例中,所述请求变量提取模块610可以用于执行前述操作s210,在此不多做赘述。
119.所述组件元数据匹配模块620,用于根据所述请求组件列表获取对应的组件元数据,所述组件元数据包括组件依赖坐标和组件模板配置信息。在一实施例中,所述组件元数据匹配模块620可以用于执行前述操作s220,在此不多做赘述。
120.所述坐标组装模块630,用于根据所述工程依赖坐标和多个所述组件依赖坐标进行组装,得到工程模型文件。在一实施例中,所述坐标组装模块630可以用于执行前述操作s230,在此不多做赘述。
121.所述工程配置模块640,根据所述请求变量配置信息和所述组件模板配置信息进行配置处理,得到工程相关文件,所述工程相关文件包括工程配置文件和工程代码文件。在一实施例中,所述工程配置模块640可以用于执行前述操作s240,在此不多做赘述。
122.所述拼搭工程生成模块650,用于根据所述工程模型文件、所述工程配置文件和所
述工程代码文件生成拼搭工程。在一实施例中,所述拼搭工程生成模块650可以用于执行前述操作s250,在此不多做赘述。
123.在本公开的实施例中,基于项目需求自由选择预先配置的组件元数据,通过组装依赖坐标以及配置工程相关文件,实现了组件之间的自由拼搭,取代了原有固定模板的开发方式,满足低代码原则的同时提升了开发的灵活度,使得该拼搭工程生成方法具有更加高效的开发效率以及更加广泛的应用场景。
124.根据本公开的实施例,所述组件模板配置信息包括:通用配置模板、自定义配置模板、自定义代码模板以及注解信息模板。
125.根据本公开的实施例,所述工程配置模块630,还用于获取通用配置模板和自定义配置模板;基于所述请求变量配置信息中所有配置项的变量,替换所述通用配置模板和所述自定义配置模板中相应配置项的变量,得到通用配置文件和自定义配置文件。
126.根据本公开的实施例,其中,所述通用配置文件中的配置项至少包括策略序号,所述策略序号用以实现不同组件的配置策略,所述配置策略至少包括替换配置策略和分开配置策略,所述工程配置模块630,还用于遍历待拼搭的所述组件元数据中的所有配置项;判断不同组件的配置项间是否存在相同配置项的变量;以及在不同组件的配置项间存在相同配置项的变量的情况下,基于避免配置冲突的原则配置所述策略序号。
127.根据本公开的实施例,所述工程配置模块630,还用于提取不同组件的自定义代码模板;对不同组件中的所述自定义代码模板和所述注解信息模板进行拼搭,得到第一工程代码文件;以及修改所述第一工程代码文件中的不同组件的所述注解信息模板,得到所述工程代码文件。
128.根据本公开的实施例,所述组件元数据的类别包括:中间件接入组件、接口调用适配构件、处理链限流组件、处理链灰度路由组件、处理链业务防重组件、异步任务组件以及加解密组件。
129.根据本公开的实施例,所述请求变量提取模块610、所述组件元数据匹配模块620、所述坐标组装模块630、所述工程配置模块640以及所述拼搭工程生成模块650中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,所述请求变量提取模块610、所述组件元数据匹配模块620、所述坐标组装模块630、所述工程配置模块640以及所述拼搭工程生成模块650中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,所述请求变量提取模块610、所述组件元数据匹配模块620、所述坐标组装模块630、所述工程配置模块640以及所述拼搭工程生成模块650中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
130.图7示意性示出了根据本公开实施例的适于实现拼搭工程生成方法的电子设备的方框图。
131.如图7所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在
只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
132.在ram 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、rom 702以及ram 703通过总线704彼此相连。处理器701通过执行rom 702和/或ram 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 702和ram 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
133.根据本公开的实施例,电子设备700还可以包括输入/输出(i/o)接口705,输入/输出(i/o)接口705也连接至总线704。电子设备700还可以包括连接至i/o接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
134.本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
135.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 702和/或ram 703和/或rom 702和ram 703以外的一个或多个存储器。
136.本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
137.在该计算机程序被处理器701执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
138.在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的
任意合适的组合。
139.在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
140.根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
141.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
142.本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
143.以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献