OneCode 低代码引擎元数据设计

简介: 前言: 在百度百科中,元数据被定义为:描述数据的数据,对数据及信息资源的描述性信息。在低代码平台中元数据的使用也是非常广泛,从前端可视化的组件的prop 属性定义,后端OR Maping数据库表映射,以及支撑系统模块关联关系,权限分配支撑等等都是基础性的元数据。而对于低代码平台及工具而言,其最主要的一个功能也是配置管理低代码组件的元数据信息。在业务组件发生需求变更时尽量通过修改元数配置的方式来改变组件的业务特性。

前言:

     在百度百科中,元数据被定义为:描述数据的数据,对数据及信息资源的描述性信息。在低代码平台中元数据的使用也是非常广泛,从前端可视化的组件的prop 属性定义,后端OR Maping数据库表映射,以及支撑系统模块关联关系,权限分配支撑等等都是基础性的元数据。而对于低代码平台及工具而言,其最主要的一个功能也是配置管理低代码组件的元数据信息。在业务组件发生需求变更时尽量通过修改元数配置的方式来改变组件的业务特性。

一,OneCode元数据实现

     OneCode 语言本身基于成熟的JAVA语言体系,在元数据管理方面采用了,JAVA5原生的Annoation代码注解配置来完成,通过JDK完成基础编译,具体的元数据含义则由OneCode代码引擎独立独立解析支持。

(1)OneCode元数据注解基础组成

      OneCode 元数据注解体系基础基础体系是一组基于经典MVC结构的注解分类。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

   在模型(Module)类中中添加 @DBTable实现数据库表映射,或者在实体类中增加Aggregation聚合注解实现实体向聚合类的转换。

     在控制器中(Controller)中添加Web路由注解@RequestMapping来完成Controller向web 容器的注入实现。

   视图(View)中增加可被可视化设计器识别的视图注解代码。

(2)OneCode高级注解

     OneCode 在完成基础的MVC注解支持外,额外提供了基于模块以及工程体系的注解应用。模块注解中提供了大量的值对象描述及常用域功能集成支持,可以在MVC基础上,通过增加@Module 、@TreeView 、@GridVIew、@FormView等集成性注解标识将单一的数据交互过程标识为模块级的应用。实现一键生成应用从而实现对于业务模块的高聚合支持。

    在低代码应用中由于其场景的特殊性,对模块的发布以及工程管理应用提出了特殊的需求。OneCode在此基础上也提供了基于@Domain(领域服务) @Project (工程服务),允许开发者将第三方的引擎服务、常用业务服务以及工程本地代码导出发布预览等等提供元数据的支持。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

二,OneCode元数据注解解耦关系关系设计

(1)OneCode元数据注解添加范围

     OneCode 支持开发者,在Java类、方法、字段属性以及构造函数上添加相应的注解。在类直接上直接添加@RequestMapping 直接声明可以将一组方法声明为Web可访问,也可以添加@GridAnnotaion @FormAnnataion等注解将当前实体声明为列表或者视图渲染。同样服务的方法注解上,可以添加与方法对应的动作、事件、服务来实现对应领域事件及服务调度的注册。而对于树形对象、容器组件等应用组件需要动态装载或者符合构建的实体则通过在构造函数上添加对象声明周期管理的相关注解。

编辑切换为居中

MVC通用注解一览图

(2)OneCode 元数据注解接口添加原则

     OneCode允许用户在接口、抽象类、内部类以及普通类中添加注解,但更推荐用户将OneCode注解添加到独立的接口类,在多数的注解应用中,独立的接口描述基本上就已经能完成元数据的描述需求。程序在运行期可以通过,Spring 等IOC框架实现具体实现的以来注入。而当开发者通过OneCode建模工具来修改元数据定义时也可以有效的避免对具体实现的干扰。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

一键渲染

(3)OneCode 元数据注解分类理论支持及分类方法

     OneCode在通用MVC开发注解基础上,大幅的引入了领域驱动设计的模型原理。通过领域模型元数据注解支持 ,将通用MVC开发,引擎中间件、微服务调度服务、业务集成开发、以及工程全权限配置等领域范畴的服务进行领域对象声明,在工程初始化时统一引入到通用的领域模型中,供OneCode的领域模型工具完成进一步的建模配置

编辑切换为居中

添加图片注释,不超过 140 字(可选)

三,OneCode元数据建模工具支持

(1)OneCode元数据编辑工具

 OneCode 元素编辑工具是OneCode领域建模中最为重要的一个工具,OneCode代码工具可以直接读取附有OneCode元数据注解的Java原文件,开发者可以直接手工编辑Java代码。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

也可以通过展开元数据属性图进行可视化的元数据编辑管理。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)


(2)仓储构建工具

     OneCode提供了强大的注解支持体系,但开发者在首次使用时往往还是会出现手足无措,仓储构建工具的目的是辅助开发者使用常用的实体模型,通过资源适配快速的完成基础工程的构建,然后再通过OneCode  编辑器完成进一步的元数据注解支持。 OneCode 内置了数据库驱动工具,允许用户直接数据库表结构,也可以通过自带的API桥接工具完成接口与实体的自动映射投影快速完成OneCode 工程构建。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

(3)视图设计工具

           OneCode视图设计器,通常是OneCode建模的最后的一步,在完成前期数据建模及工程构建后,通过向视图设计器的无缝对接,实现了全栈应用的无代码应用。

编辑切换为居中

添加图片注释,不超过 140 字(可选)


相关文章
|
微服务 测试技术 Java
阿里技术专家详解 DDD 系列- Domain Primitive
关于DDD的一系列文章,希望能继续在总结前人的基础上发扬光大DDD的思想,但是通过一套我认为合理的代码结构、框架和约束,来降低DDD的实践门槛,提升代码质量、可测试性、安全性、健壮性。
63189 17
阿里技术专家详解 DDD 系列- Domain Primitive
|
Kubernetes Cloud Native 开发工具
Argo与Flux在云原生GitOps实践上的能力对比与分析
随着云原生技术的普及和落地,越来越多的云原生应用被部署到生产环境中,由于云原生应用通常都是基于云的分布式部署模式,且每个应用可能是由多个功能组件互相调用来一起提供完整的服务的,每个组件都有自己独立的迭代流程和计划。在这种情况下,功能组件越多,意味着应用的发布管理越复杂,如果没有一个好的方案或者系统来管理复杂应用的发布上线的话,业务面临的风险也是非常大的。开源社区在复杂应用发布管理方面逐渐开始发力,
5607 1
Argo与Flux在云原生GitOps实践上的能力对比与分析
|
Cloud Native 安全 Linux
基于eBPF的云原生可观测性开源项目Kindling之eBPF基础设施库技术选型
eBPF技术正以令人难以置信的速度发展,作为一项新兴技术,它具备改变容器网络、安全、可观测性生态的潜力。本文主要探讨Kindling的eBPF基础设施库的选型考量。
1475 0
基于eBPF的云原生可观测性开源项目Kindling之eBPF基础设施库技术选型
|
人工智能 前端开发 Java
十几行代码实现 Manus,Spring AI Alibaba Graph 快速预览
Spring AI Alibaba Graph 的核心开发已完成,即将发布正式版本。开发者可基于此轻松构建工作流、智能体及多智能体系统,功能丰富且灵活。文章通过三个示例展示了其应用:1) 客户评价处理系统,实现两级问题分类与自动处理;2) 基于 ReAct Agent 的天气预报查询系统,循环执行用户指令直至完成;3) 基于 Supervisor 多智能体的 OpenManus 实现,简化了流程控制逻辑并优化了工具覆盖度。此外,还提供了运行示例的方法及未来规划,欢迎开发者参与贡献。
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
626 8
|
人工智能 分布式计算 Java
说说XXLJob分片任务实现原理?
说说XXLJob分片任务实现原理?
2723 0
说说XXLJob分片任务实现原理?
|
传感器 存储 物联网
物联网的定义和原理
物联网 (IoT) 是指由嵌入传感器、软件和网络连接的物理设备、车辆、电器和其他物理对象组成的网络,允许它们收集和共享数据。这些设备(也称为“智能对象”)的范围可以从简单的“智能家居”设备(如智能恒温器)到可穿戴设备(如智能手表和支持RFID的服装),再到复杂的工业机械和运输系统。技术人员甚至设想了基于物联网技术的整个“智慧城市”。
2498 1
|
消息中间件 Kafka
消费kafka不需要设置 压缩协议吗 假如生产者压缩协议是lz4
消费kafka不需要设置 压缩协议吗 假如生产者压缩协议是lz4
简单好用的图片取色器【可取RGB数值】
这篇文章介绍了如何使用Snipaste工具进行截图和取色,包括按下快捷键F1截图、选择图片区域、移动鼠标取色以及复制颜色值的步骤,并提供了操作界面的截图。