应用生成方法、装置、电子设备及存储介质与流程

未命名 08-13 阅读:104 评论:0


1.本公开涉及计算机技术领域,尤其涉及一种应用生成方法、装置、电子设备及存储介质。


背景技术:

2.在当前开发中,主流的开发模式依然是代码为主,每个功能逻辑都通过写代码的方式实现,当然,可以通过包、函数库等形式复用代码逻辑。
3.随着对于开发效率的追求,也出现了越来越多的低代码开发工具,这些工具中,需要用户熟练掌握编程语言及各种相关技术,并且组装应用的效率较低,任何功能都要通过写代码实现。
4.公开内容
5.本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
6.为此,本公开的一个目的在于提出一种应用生成方法。
7.本公开的第二个目的在于提出一种应用生成装置。
8.本公开的第三个目的在于提出一种电子设备。
9.本公开的第四个目的在于提出一种非瞬时计算机可读存储介质。
10.本公开的第五个目的在于提出一种计算机程序产品。
11.为达上述目的,本公开第一方面实施方式提出了一种应用生成方法,包括:获取初始的第一组件;获取第一组件的元数据信息,并基于元数据信息和第一组件生成第二组件;基于第二组件对组件库进行更新;调用组件库中的第二组件进行应用的生成。
12.根据本公开的一个实施方式,获取第一组件的元数据信息,包括:获取第一组件的注解信息;基于注解信息,确定第一组件的元数据信息。
13.根据本公开的一个实施方式,获取第一组件的注解信息,包括:扫描实现第一组件接口的类;解析类中的注解,以获取第一组件的注解信息。
14.根据本公开的一个实施方式,基于注解信息,确定第一组件的元数据信息,包括:基于注解信息确定初始开发组件的组件基本信息、组件操作信息和组件配置信息;基于组件基本信息、组件操作信息和组件配置信息确定组件元数据信息。
15.根据本公开的一个实施方式,基于第二组件对组件库进行更新,包括:将第二组件存储至组件库中,并基于组件基本信息、组件操作信息和组件配置信息,对第二组件在组件库中的配置项列表和操作列表进行更新。
16.根据本公开的一个实施方式,调用组件库中的第二组件进行应用的生成,包括:获取输入数据;基于输入数据调用组件库中的目标组件;基于目标组件进行应用的生成。
17.根据本公开的一个实施方式,获取输入数据,包括:监听用户在配置项列表和操作列表中的操作;基于用户在配置项列表和操作列表中的操作,获取输入数据。
18.根据本公开的一个实施方式,目标组件在被组装完成的应用调用,包括:判断目标组件的组件类型;基于组件类型,执行目标组件。
19.根据本公开的一个实施方式,基于组件类型,执行目标组件,包括:响应于组件类型为单例组件,执行单例组件。
20.根据本公开的一个实施方式,基于组件类型,执行目标组件,包括:响应于组件类型为实例组件,从组件实例管理模块中获取目标组件的组件实例;基于组件实例执行目标组件。
21.根据本公开的一个实施方式,方法还包括:响应于从组件实例管理模块中,未获取目标组件的组件实例,基于目标组件,在组件工厂中建立组件实例。
22.根据本公开的一个实施方式,基于目标组件,在组件工厂中建立组件实例,包括:对目标组件分配配置id;基于目标组件对应的输入数据和配置id,建立目标组件的组件实例。
23.根据本公开的一个实施方式,响应于组件类型为实例组件,从组件实例管理模块中获取目标组件的组件实例,包括:从组件实例管理模块中,获取应用对应的组件实例管理对象;从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。
24.根据本公开的一个实施方式,从组件实例管理对象存储的组件实例中,获取目标组件的组件实例,包括:获取应用的应用数量;基于应用数量,从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。
25.根据本公开的一个实施方式,基于应用数量,从组件实例管理对象存储的组件实例中,获取目标组件的组件实例,包括:响应于应用数量为多个,针对任一应用,基于应用对应的组件实例管理对象,获取目标组件的组件实例。
26.根据本公开的一个实施方式,方法还包括:响应于未获取到目标组件的组件实例,从组件实例管理模块中确定父组件管理对象;从父组件管理对象中,获取目标组件的组件实例。
27.根据本公开的一个实施方式,输入数据中包括组件上下文数据,调用组件,包括:基于上下文数据创建目标组件的组件上下文,启动目标组件。
28.根据本公开的一个实施方式,启动输入数据对应的目标组件,包括:基于输入数据对目标组件进行配置;启动配置完成的目标组件。
29.根据本公开的一个实施方式,方法还包括:对组件库中的目标组件使用独立的类加载器进行加载启动。
30.根据本公开的一个实施方式,第一组件为sdk开发平台生成的组件。
31.为达上述目的,本公开第二方面实施例提出了一种应用生成装置,包括:获取模块,用于获取初始的第一组件;生成模块,用于获取第一组件的元数据信息,并基于元数据信息和第一组件生成第二组件;更新模块,用于基于第二组件对组件库进行更新;组装模块,用于调用组件库中的第二组件进行应用的生成。
32.根据本公开的一个实施方式,生成模块,还用于:获取第一组件的注解信息;基于注解信息,确定第一组件的元数据信息。
33.根据本公开的一个实施方式,生成模块,还用于:扫描实现第一组件接口的类;解析类中的注解,以获取第一组件的注解信息。
34.根据本公开的一个实施方式,生成模块,还用于:基于注解信息确定初始开发组件的组件基本信息、组件操作信息和组件配置信息;基于组件基本信息、组件操作信息和组件
配置信息确定组件元数据信息。
35.根据本公开的一个实施方式,更新模块,还用于:将第二组件存储至组件库中,并基于组件基本信息、组件操作信息和组件配置信息,对第二组件在组件库中的配置项列表和操作列表进行更新。
36.根据本公开的一个实施方式,组装模块,还用于:获取输入数据;基于输入数据调用组件库中的目标组件;基于目标组件进行应用的生成。
37.根据本公开的一个实施方式,组装模块,还用于:监听用户在配置项列表和操作列表中的操作;基于用户在配置项列表和操作列表中的操作,获取输入数据。
38.根据本公开的一个实施方式,组组装模块,还用于:判断目标组件的组件类型;基于组件类型,执行目标组件。
39.根据本公开的一个实施方式,组装模块,还用于:响应于组件类型为单例组件,执行单例组件。
40.根据本公开的一个实施方式,组装模块,还用于:响应于组件类型为实例组件,从组件实例管理模块中获取目标组件的组件实例;基于组件实例执行目标组件。
41.根据本公开的一个实施方式,组装模块,还用于:响应于从组件实例管理模块中,未获取目标组件的组件实例,基于目标组件,在组件工厂中建立组件实例。
42.根据本公开的一个实施方式,组装模块,还用于:对目标组件分配配置id;基于目标组件对应的输入数据和配置id,建立目标组件的组件实例。
43.根据本公开的一个实施方式,组装模块,还用于:从组件实例管理模块中,获取应用对应的组件实例管理对象;从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。
44.根据本公开的一个实施方式,组装模块,还用于:获取应用的应用数量;基于应用数量,从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。
45.根据本公开的一个实施方式,组装模块,还用于:响应于应用数量为多个,针对任一应用,基于应用对应的组件实例管理对象,获取目标组件的组件实例。
46.根据本公开的一个实施方式,组装模块,还用于:响应于未获取到目标组件的组件实例,从组件实例管理模块中确定父组件管理对象;从父组件管理对象中,获取目标组件的组件实例。
47.根据本公开的一个实施方式,输入数据中包括组件上下文数据,组装模块,还用于:基于上下文数据创建目标组件的组件上下文,启动目标组件。
48.根据本公开的一个实施方式,组装模块,还用于:基于输入数据对目标组件进行配置;启动配置完成的目标组件。
49.根据本公开的一个实施方式,其特征在于,组装模块,还用于:对组件库中的目标组件使用独立的类加载器进行加载启动。
50.根据本公开的一个实施方式,第一组件为sdk开发平台生成的组件。
51.为达上述目的,本公开第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以实现如本公开第一方面实施例所述的应用生成方法。
52.为达上述目的,本公开第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于实现如本公开第一方面实施例所述的应用生成方法。
53.为达上述目的,本公开第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时用于实现如本公开第一方面实施例所述的应用生成方法。
54.通过对组件进行解析生成元数据信息,并以此对组件库进行更新,可以对组件的信息进行归一化处理,为组件组装成应用提供便利,提升应用组装的效率和准确性,降低操作难度。
附图说明
55.图1是本公开一个实施方式的一种应用生成方法的示意图;
56.图2是本公开一个实施方式的一种应用生成方法的接口功能示意图;
57.图3是本公开一个实施方式的另一种应用生成方法的示意图;
58.图4是本公开一个实施方式的另一种应用生成方法的示意图;
59.图5是本公开一个实施方式的另一种应用生成方法的示意图;
60.图6是本公开一个实施方式的另一种应用生成方法的示意图;
61.图7是本公开一个实施方式的另一种应用生成方法的示意图;
62.图8是本公开一个实施方式的另一种应用生成方法的示意图;
63.图9是本公开一个实施方式的一种应用生成装置的示意图;
64.图10是本公开一个实施方式的一种电子设备的示意图。
具体实施方式
65.下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
66.图1为本公开提出的一种应用生成方法的一种示例性实施方式的示意图,如图1所示,该应用生成方法包括以下步骤:
67.s101,获取初始的第一组件。
68.需要说明的是,本公开实施例中的第一组件为低代码组件,需要说明的是,低代码(low code)是一种可视化的应用开发方法,用较少的代码、以较快的速度来交付应用程序,将程序员不想开发的代码做到自动化,称之为低代码。
69.在本公开实施例中,第一组件的获取方式可为多种,此处不不作任何限定。
70.可选地,第一组件可为提前生成好的,并存储在存储空间中,以方便在需要时调取使用。
71.可选地,第一组件还可为通过低代码开发工具进行开发获取的,在这些工具中,有的侧重于前端研发,通过可视化快速构建面向用户的h5/web页面、小程序、application等,有的侧重于数据模型,通过可视化对业务实体进行建模,有的侧重于服务、流程或逻辑编排,通过可视化对业务逻辑进行编排。在开发工具开发生成后,存储在存储空间中,以方便
在需要时调取使用。
72.可选地,第一组件还可为通过写代码的方式进行生成,并存储在存储空间中,以方便在需要时调取使用。
73.需要说明的是,上述存储空间可为电子设备的存储空间,也可为云存储空间,此处不作任何限定。
74.s102,获取第一组件的元数据信息,并基于元数据信息和第一组件生成第二组件。
75.在获取都第一组件后,可通过对第一组件进行数据的提取和解析,以确定第一组件的元数据信息。
76.需要说明的是,元数据信息可包含多个信息,举例来说,可包含分组、名称、摘要、描述、版本和是否单例等,此处不作任何限定,具体需要根据实际的设计需要进行设定。
77.在本公开实施例中,可通过组件元数据管理模块对第一组件进行数据的处理。需要说明的是,组件元数据管理模用于解析第一组件的元数据信息,是提前设定好的,并存储在电子设备的存储空间中,以方便在需要时调取使用。
78.可选地,还可对第一组件的注解信息进行分析,以确定第一组件的元数据信息。
79.在确定第一组件的元数据信息后,可将元数据信息和第一组件进行绑定,以生成第二组件。需要说明的是,每个第二组件都对应包含有一个相同的接口可进行操作,举例来说,如图2所示,可通过组件接口动态启动、停止组件,可以查询启动状态。为了使组件与运行时环境交互,组件都被注入一个上下文参数,在不同的应用中,上下文对象可以不同。组件可以有配置。组件有元数据,元数据即上节介绍的数据。可以让组件执行操作,给定操作名称和参数列表即可调用。
80.s103,基于第二组件对组件库进行更新。
81.需要说明的是,为了后续方便调取组件库中的组件,在对组件库进行更新时,需要将每一个第二组件的组件名称设置成全局唯一的。
82.为了方便进行调取,还可对组件进行分类,需要说明的是,组件库中可包含多个分类,此处不作任何限定,具体可根据实际的设计需要进行限定。举例来说,组件可包括系统组件和应用自定义组件。通过这种方式,可以实现将系统组件和用户自定义组件区分,以方便后续更好的进行调取和使用,提升组装应用的效率。
83.s104,调用组件库中的第二组件进行应用的生成。
84.在本公开实施例中,调用组件库中的第二组件生成应用可为自动生成,既通过设定一个需要实现的功能,通过人工智能选定组件库中的组件组装应用。
85.可选地,也可为低代码开发者选择组件库提供的组件组装应用,通过选择对应的组件种类和需要实现的功能从组件库中选定组装应用的组件。
86.在本公开实施例中,首先获取初始的第一组件,然后获取第一组件的元数据信息,并基于元数据信息和第一组件生成第二组件,而后基于第二组件对组件库进行更新,最后调用组件库中的第二组件进行应用的生成。通过对组件进行解析生成元数据信息,并以此对组件库进行更新,可以对组件的信息进行归一化处理,为组件组装成应用提供便利,提升应用组装的效率和准确性,降低操作难度。
87.需要说明的是,在基于第二组件对组件库进行更新后,还可基于第二组件生成声明式组件交互界面(user interface,ui),以此可以避免每个组件单独开发ui,基于组件元
数据动态生成ui,ui风格可以自己定义,与具体的低代码平台相分离。不需要开发者定义ui,只需要通过注解的方式定义组件元数据,集成开发环境(ide,integrated development environment)根据元数据动态展示组件ui。
88.需要说明的是,第一组件为软件开发工具包(software development kit,sdk)开发平台生成的组件。利用组件sdk,开发组件就像开发一个普通的类一样,只是添加一些必要的注解。电子设备与sdk平台之间设有通信连接,以获取sdk平台开发的第一组件。
89.上述实施例中,获取第一组件的元数据信息,还可通过图3进一步解释,该方法包括:
90.s301,获取第一组件的注解信息。
91.在本公开实施例中,可通过扫描实现第一组件接口的类,解析类中的注解,以获取第一组件的注解信息。需要说明的是,不同类别的组件的注解可为不同,此处不作任何限定,具体需要根据实际设计需要进行限定。
92.举例来说,可通过解析注解类、注解类方法和注解方法中的参数、以及配置类中的字段等来获取注解数据,其中注解类,表示组件基本信息,注解类方法,表示操作注解方法中的参数、以及配置类中的字段。举例来说,在java语言中,可以利用java的服务提供发现机制(service provider interface,spi)机制,在meta-inf/services下声明组件接口类文件,指明实现了该接口的组件类。可通过组件元数据管理模块扫描所有实现了该接口的类,解析类中的注解获取组件元数据。
93.s302,基于注解信息,确定第一组件的元数据信息。
94.在本公开实施例中,通过获取注解信息,可以分析第一组件的基本信息,例如分组、名称、摘要、描述、版本、是否单例等,还可分析出组件可以实现的操作,还可分析出组件实现操作的参数、以及配置类中的字段等。基于上述信息进行处理,以生成元数据信息。
95.需要说明的是,元数据信息是面向用户的,用户可基于元数据信息进行泛化操作。
96.需要说明的是,处理生成元数据信息的方式可为多种。可选地将获取的注解信息进行归一化处理,以生成格式、大小同一的信息,以此生成元数据信息。
97.可选地还可对注解信息进行筛选,以筛除明显错误的信息,以此,可以提升组件生成的准确率。
98.在本公开实施例中,首先获取第一组件的注解信息,然后基于注解信息,确定第一组件的元数据信息。以此,基于第一组件的注解信息,可以获取第一组件的元数据信息。可以获取更加准确的元数据信息,提升后续生成第二组件的准确率,从而提升生成应用的准确率和鲁棒性。
99.在本公开实施例中,基于注解信息,确定第一组件的元数据信息,可首先基于注解信息确定初始开发组件的组件基本信息、组件操作信息和组件配置信息,然后基于组件基本信息、组件操作信息和组件配置信息确定组件元数据信息。
100.基于第二组件对组件库进行更新,可将第二组件存储至组件库中,并基于组件基本信息、组件操作信息和组件配置信息,对第二组件在组件库中的配置项列表和操作列表进行更新。
101.上述实施例中,调用组件库中的第二组件进行应用的生成,还可通过图4进一步解释,该方法包括:
102.s401,获取输入数据。
103.在本公开实施例中,可通过监听用户在配置项列表和操作列表中的操作,并基于用户在配置项列表和操作列表中的操作,获取输入数据。需要说明的是,配置项可包含多种,举例来说,配置项可包括名称、类型、摘要、描述、是否必填、示例值、默认值、可选值、子字段等。同样的,操作项也可包含多种,举例来说,操作项可包括名称、摘要、描述、输入参数、输出参数,支持哪些操作可能是根据配置不同而动态的。
104.需要说明的是,输入数据可包括用户选择的组件名称、需要组件进行的操作等。
105.可选地,还可基于开发应用需要实现的功能,自动生成输入数据。
106.s402,基于输入数据调用组件库中的目标组件。
107.在本公开实施例中,在获取到输入数据后,可基于组件名称确定组件库中的目标组件。需要说明的是,输入数据中包含需要调用的目标组件的顺序,在生成应用时,需要根据顺序依次进行调取。
108.s403,基于目标组件进行应用的生成。
109.在本公开实施例中,首先获取输入数据,然后基于输入数据调用组件库中的目标组件,最后基于目标组件进行应用的生成。以此,通过输入数据,从组件库中选定组件并生成应用,相较于传统的组件组装平台,本方案无需进行复杂的编程,容易操作,且生成的应用准确率更高。
110.上述实施例中,目标组件在被组装完成的应用调用,还可通过图5进一步解释,该方法包括:
111.s501,判断目标组件的组件类型。
112.在本公开实施例中,组件类型包括单例和非单例。对于单例组件,只是包括一些固定的操作,在一个应用中只有一个内存实例,如字符串操作、日期操作、加密hash操作、格式转换等。对于实例组件,有配置身份标识(identity document,id)和可选的多条配置数据,在一个应用中每个不同的配置id会生成一个新的内存实例。
113.s502,基于组件类型,执行目标组件。
114.在本公开实施例中,响应于组件类型为单例组件,执行单例组件。响应于组件类型为实例组件,从组件实例管理模块中获取目标组件的组件实例,基于组件实例执行目标组件。
115.需要说明的是,响应于组件类型为实例组件,从组件实例管理模块中获取目标组件的组件实例,基于组件实例执行目标组件。
116.在本公开实施例中,首先判断目标组件的组件类型,然后基于组件类型,执行目标组件。通过判断目标组件的类型,执行不同的执行策略,可以组件实例生成的准确性和效率。
117.在本公开实施例中,基于目标组件,在组件工厂中建立组件实例,可首先对目标组件分配配置id,然后基于目标组件对应的输入数据和配置id,建立目标组件的组件实例。需要说明的是,不同的应用对应的配置id不同,以此可以区别目标组件在不同应用中的组件实例,为后续其他应用在调用时提供基础,保证调用实例的准确性。
118.进一步地,响应于从组件实例管理模块中,未获取目标组件的组件实例,基于目标组件,在组件工厂中建立组件实例。需要说明的是,组件工厂负责组件实际的应用,在创建
组件时,每个组件使用单独的类加载器,以实现不同组件之间的完全隔离,避免类冲突。同时可以动态加载、卸载,支持多应用、层次化组件实例管理结构。
119.上述实施例中,响应于组件类型为实例组件,从组件实例管理模块中获取目标组件的组件实例,还可通过图6进一步解释,该方法包括:
120.s601,从组件实例管理模块中,获取应用对应的组件实例管理对象。
121.在本公开实施例中,应用需要能够根据名称、版本获取实例,根据配置id和配置项创建组件实例,组件实例由组件实例管理模块负责。
122.需要说明的是,组件实例管理模块中包括多个组件实例管理对象,在应用组装成功时,则生成一个对应的组装实例管理对象,组件实例管理对象中包括该应用中目标组件对应的组件实例。
123.s602,从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。
124.在本公开实施例中,首先从组件实例管理模块中,获取应用对应的组件实例管理对象,然后从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。通过对应用分配组件实例管理对象,可以实现快速的查询应用对应的组件实例,提升调用组件实例的速度和准确性。
125.上述实施例中,从组装实例管理对象存储的组件实例中,获取目标组件的组件实例,还可通过图7进一步解释,该方法包括:
126.s701,获取应用的应用数量。
127.在本公开实施例中,组装的应用数量可为多个,举例来说,当组建一个系统时,该系统可包含多个应用,用以协同实现系统功能。
128.s702,基于应用数量,从组装实例管理对象存储的组件实例中,获取目标组件的组件实例。
129.响应于应用数量为1个,基于应用对应的组装实例管理对象,获取目标组件的组件实例。
130.响应于应用数量为多个,针对任一应用,基于应用对应的组装实例管理对象,获取目标组件的组件实例。
131.当应用数量为多个,未获取到目标组件的组件实例,从组件实例管理模块中确定父组件管理对象,并从父组件管理对象中,获取目标组件的组件实例。
132.需要说明的是,父组件管理对象为组件实例管理模块中包含所有组件实例的模块。通过设置父组件管理对象,可以防止无法从应用对应的组装实例管理对象中获取目标组件的组件实例,提升了组件实例管理模块的鲁棒性。
133.在本公开实施例中,首先获取应用的应用数量,然后基于应用数量,从组装实例管理对象存储的组件实例中,获取目标组件的组件实例,由此,通过确定应用的数量,指定不同的组件实例获取方式,可以提升组件获取的效率和准确性,以及应用运行的速率。
134.上述实施例中,输入数据中包括组件上下文数据,调用组件,还可通过图8进一步解释,该方法包括:
135.s801,基于上下文数据创建目标组件的组件上下文,启动目标组件。
136.在本公开实施例中,为了使组件与运行时环境交互,组件都被注入一个上下文参数,在不同的应用中,上下文对象可为不同,具体需要根据实际情况而定。
137.需要说明的是,上下文是用来存储应用的一些初始化信息,例如在jboss中通过配置文件指定了数据源,那么在jboss启动的时候就把这个文件的相关信息上下文中,于是在我们使用这个数据源的时候,就需要先获得应用的上下文,然后再通过一定的方式将数据源取出来。至于在应用启动时,是如何将这些初始化信息加载到上下文中,而上下文在程序中具体又是以什么形式体现的,应该随着应用的不同而不同,此处不作任何限定。
138.在获取到上下文启动输入数据后,可按照顺序启动目标组件。在本公开实施例中,获取目标组件可基于应用建立组件实例管理模块,基于组件实例管理模块获取目标组件的组件实例。
139.与上述几种实施例提供的应用生成方法相对应,本公开的一个实施例还提供了一种应用生成装置,由于本公开实施例提供的应用生成装置与上述几种实施例提供的应用生成方法相对应,因此上述应用生成方法的实施方式也适用于本公开实施例提供的应用生成装置,在下述实施例中不再详细描述。
140.图9为本公开提出的一种应用生成装置的示意图,如图9所示,该应用生成装置900,包括:获取模块910、生成模块920、更新模块930和组装模块940。
141.其中,获取模块910,用于获取初始的第一组件。
142.生成模块920,用于获取第一组件的元数据信息,并基于元数据信息和第一组件生成第二组件。
143.更新模块930,用于基于第二组件对组件库进行更新。
144.组装模块940,用于调用组件库中的第二组件进行应用的生成。
145.在本公开的一个实施中,生成模块920,还用于:获取第一组件的注解信息;基于注解信息,确定第一组件的元数据信息。
146.在本公开的一个实施中,生成模块920,还用于:扫描实现第一组件接口的类;解析类中的注解,以获取第一组件的注解信息。
147.在本公开的一个实施中,生成模块920,还用于:基于注解信息确定初始开发组件的组件基本信息、组件操作信息和组件配置信息;基于组件基本信息、组件操作信息和组件配置信息确定组件元数据信息。
148.在本公开的一个实施中,更新模块930,还用于:将第二组件存储至组件库中,并基于组件基本信息、组件操作信息和组件配置信息,对第二组件在组件库中的配置项列表和操作列表进行更新。
149.在本公开的一个实施中,组装模块940,还用于:获取输入数据;基于输入数据调用组件库中的目标组件;基于目标组件进行应用的生成。
150.在本公开的一个实施中,组装模块940,还用于:监听用户在配置项列表和操作列表中的操作;基于用户在配置项列表和操作列表中的操作,获取输入数据。
151.在本公开的一个实施中,组装模块940,还用于:判断目标组件的组件类型;基于组件类型,执行目标组件。
152.在本公开的一个实施中,组装模块940,还用于:响应于组件类型为单例组件,执行单例组件。
153.在本公开的一个实施中,组装模块940,还用于:响应于组件类型为实例组件,从组件实例管理模块中获取目标组件的组件实例;基于组件实例执行目标组件。
154.在本公开的一个实施中,组装模块940,还用于:响应于从组件实例管理模块中,未获取目标组件的组件实例,基于目标组件,在组件工厂中建立组件实例。
155.在本公开的一个实施中,组装模块940,还用于:对目标组件分配配置id;基于目标组件对应的输入数据和配置id,建立目标组件的组件实例。
156.在本公开的一个实施中,组装模块940,还用于:从组件实例管理模块中,获取应用对应的组件实例管理对象;从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。
157.在本公开的一个实施中,组装模块940,还用于:获取应用的应用数量;基于应用数量,从组件实例管理对象存储的组件实例中,获取目标组件的组件实例。
158.在本公开的一个实施中,组装模块940,还用于:响应于应用数量为多个,针对任一应用,基于应用对应的组件实例管理对象,获取目标组件的组件实例。
159.在本公开的一个实施中,组装模块940,还用于:响应于未获取到目标组件的组件实例,从组件实例管理模块中确定父组件管理对象;从父组件管理对象中,获取目标组件的组件实例。
160.在本公开的一个实施中,输入数据中包括组件上下文数据,组装模块940,还用于:基于上下文数据创建目标组件的组件上下文,启动目标组件。
161.在本公开的一个实施中,组装模块940,还用于:基于输入数据对目标组件进行配置;启动配置完成的目标组件。
162.在本公开的一个实施中,组装模块940,还用于:对组件库中的目标组件使用独立的类加载器进行加载启动。
163.在本公开的一个实施中,第一组件为sdk开发平台生成的组件。
164.为了实现上述实施例,本公开实施例还提出一种电子设备1000,如图10所示,该电子设备1000包括:处理器1001和处理器通信连接的存储器1002,存储器1002存储有可被至少一个处理器执行的指令,指令被至少一个处理器1001执行,以实现如本公开第一方面实施例的应用生成方法。
165.为了实现上述实施例,本公开实施例还提出一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机实现如本公开第一方面实施例的应用生成方法。
166.为了实现上述实施例,本公开实施例还提出一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如本公开第一方面实施例的应用生成方法。
167.在本公开的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。
168.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
169.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
170.尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种应用生成方法,其特征在于,包括:获取初始的第一组件;获取所述第一组件的元数据信息,并基于所述元数据信息和所述第一组件生成第二组件;基于所述第二组件对组件库进行更新;调用所述组件库中的第二组件进行应用的生成。2.根据权利要求1所述的方法,其特征在于,所述获取所述第一组件的元数据信息,包括:获取所述第一组件的注解信息;基于所述注解信息,确定所述第一组件的元数据信息。3.根据权利要求2所述的方法,其特征在于,所述获取所述第一组件的注解信息,包括:扫描实现所述第一组件接口的类;解析所述类中的注解,以获取所述第一组件的注解信息。4.根据权利要求3所述的方法,其特征在于,所述基于所述注解信息,确定所述第一组件的元数据信息,包括:基于所述注解信息确定所述初始开发组件的组件基本信息、组件操作信息和组件配置信息;基于所述组件基本信息、所述组件操作信息和所述组件配置信息确定所述组件元数据信息。5.根据权利要求4所述的方法,其特征在于,所述基于所述第二组件对组件库进行更新,包括:将所述第二组件存储至所述组件库中,并基于所述组件基本信息、所述组件操作信息和所述组件配置信息,对所述第二组件在所述组件库中的配置项列表和操作列表进行更新。6.根据权利要求5所述的方法,其特征在于,所述调用所述组件库中的第二组件进行应用的生成,包括:获取输入数据;基于所述输入数据调用所述组件库中的目标组件;基于所述目标组件进行应用的生成。7.根据权利要求6所述的方法,其特征在于,所述获取输入数据,包括:监听用户在所述配置项列表和所述操作列表中的操作;基于所述用户在所述配置项列表和所述操作列表中的操作,获取输入数据。8.根据权利要求6或7所述的方法,其特征在于,所述目标组件在被组装完成的所述应用调用,包括:判断所述目标组件的组件类型;基于所述组件类型,执行所述目标组件。9.根据权利要求8所述的方法,其特征在于,所述基于所述组件类型,执行所述目标组件,包括:响应于所述组件类型为单例组件,执行所述单例组件。
10.根据权利要求8所述的方法,其特征在于,所述基于所述组件类型,执行所述目标组件,包括:响应于所述组件类型为实例组件,从组件实例管理模块中获取所述目标组件的组件实例;基于所述组件实例执行所述目标组件。11.根据权利要求10所述的方法,其特征在于,所述方法还包括:响应于从所述组件实例管理模块中,未获取所述目标组件的组件实例,基于所述目标组件,在组件工厂中建立组件实例。12.根据权利要求11所述的方法,其特征在于,所述基于所述目标组件,在组件工厂中建立组件实例,包括:对所述目标组件分配配置id;基于所述目标组件对应的输入数据和所述配置id,在所述组件工厂中建立所述目标组件的组件实例。13.根据权利要求10所述的方法,其特征在于,所述响应于所述组件类型为实例组件,从组件实例管理模块中获取所述目标组件的组件实例,包括:从所述组件实例管理模块中,获取所述应用对应的组件实例管理对象;从所述组件实例管理对象存储的组件实例中,获取所述目标组件的组件实例。14.根据权利要求13所述的方法,其特征在于,所述从所述组件实例管理对象存储的组件实例中,获取所述目标组件的组件实例,包括:获取所述应用的应用数量;基于所述应用数量,从所述组件实例管理对象存储的组件实例中,获取所述目标组件的组件实例。15.根据权利要求14所述的方法,其特征在于,所述基于所述应用数量,从所述组件实例管理对象存储的组件实例中,获取所述目标组件的组件实例,包括:响应于所述应用数量为多个,针对任一应用,基于所述应用对应的组件实例管理对象,获取所述目标组件的组件实例。16.根据权利要求15所述的方法,其特征在于,所述方法还包括:响应于未获取到所述目标组件的组件实例,从所述组件实例管理模块中确定父组件管理对象;从所述父组件管理对象中,获取目标组件的组件实例。17.根据权利要求9-16中任一项所述的方法,其特征在于,所述输入数据中包括组件上下文数据,调用所述组件,包括:基于所述上下文数据创建所述目标组件的组件上下文,启动所述目标组件。18.根据权利要求9-16中任一项所述的方法,其特征在于,启动所述输入数据对应的目标组件,包括:基于所述输入数据对所述目标组件进行配置;启动配置完成的所述目标组件。19.根据权利要求18所述的方法,其特征在于,所述方法还包括:对所述组件库中的目标组件使用独立的类加载器进行加载启动。
20.根据权利要求1所述的方法,其特征在于,所述第一组件为sdk开发平台生成的组件。21.一种应用生成装置,其特征在于,包括:获取模块,用于获取初始的第一组件;生成模块,用于获取所述第一组件的元数据信息,并基于所述元数据信息和所述第一组件生成第二组件;更新模块,用于基于所述第二组件对组件库进行更新;组装模块,用于调用所述组件库中的第二组件进行应用的生成。22.一种电子设备,其特征在于,包括存储器、处理器;其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-20中任一项所述的方法。23.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-20中任一项所述的方法。24.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-20中任一项所述的方法。

技术总结
本公开提出了一种应用生成方法、装置、电子设备及存储介质,涉及计算机技术领域,该方法包括:获取初始的第一组件;获取第一组件的元数据信息,并基于元数据信息和第一组件生成第二组件;基于第二组件对组件库进行更新;调用组件库中的第二组件进行应用的生成。通过对组件进行解析生成元数据信息,并以此对组件库进行更新,可以对组件的信息进行归一化处理,为组件组装成应用提供便利,提升应用组装的效率和准确性,降低操作难度。降低操作难度。降低操作难度。


技术研发人员:马俊昌
受保护的技术使用者:京东科技信息技术有限公司
技术研发日:2023.05.11
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐