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 字(可选)


相关文章
|
API 网络架构 微服务
带你读《微服务架构设计模式》之三:微服务架构中的进程间通信
成功地开发基于微服务架构的应用软件,需要掌握一系列全新的架构思想和实践。在这本独特的书籍中,微服务架构的先驱、Java 开发者社区的意见领袖 Chris Richardson 收集、分类并解释了 44 个架构设计模式,这些模式用来解决诸如服务拆分、事务管理、查询和跨服务通信等难题。本书不仅仅是一个模式目录,还提供了经验驱动的建议,以帮助你设计、实现、测试和部署基于微服务的应用程序。
13803 0
|
微服务 测试技术 Java
阿里技术专家详解 DDD 系列- Domain Primitive
关于DDD的一系列文章,希望能继续在总结前人的基础上发扬光大DDD的思想,但是通过一套我认为合理的代码结构、框架和约束,来降低DDD的实践门槛,提升代码质量、可测试性、安全性、健壮性。
62519 17
阿里技术专家详解 DDD 系列- Domain Primitive
|
Kubernetes Cloud Native 开发工具
Argo与Flux在云原生GitOps实践上的能力对比与分析
随着云原生技术的普及和落地,越来越多的云原生应用被部署到生产环境中,由于云原生应用通常都是基于云的分布式部署模式,且每个应用可能是由多个功能组件互相调用来一起提供完整的服务的,每个组件都有自己独立的迭代流程和计划。在这种情况下,功能组件越多,意味着应用的发布管理越复杂,如果没有一个好的方案或者系统来管理复杂应用的发布上线的话,业务面临的风险也是非常大的。开源社区在复杂应用发布管理方面逐渐开始发力,
5295 1
Argo与Flux在云原生GitOps实践上的能力对比与分析
|
10月前
|
人工智能 自然语言处理 前端开发
从理论到实践:使用JAVA实现RAG、Agent、微调等六种常见大模型定制策略
大语言模型(LLM)在过去几年中彻底改变了自然语言处理领域,展现了在理解和生成类人文本方面的卓越能力。然而,通用LLM的开箱即用性能并不总能满足特定的业务需求或领域要求。为了将LLM更好地应用于实际场景,开发出了多种LLM定制策略。本文将深入探讨RAG(Retrieval Augmented Generation)、Agent、微调(Fine-Tuning)等六种常见的大模型定制策略,并使用JAVA进行demo处理,以期为AI资深架构师提供实践指导。
1638 73
|
存储 运维 数据可视化
低代码平台中的“模型驱动”与“表单驱动”有何区别?
低代码是近几年比较火的一种应用程序快速开发方式,它能帮助用户在开发软件的过程中大幅减少手工编码量,并通过可视化组件加速应用程序的高效交付。(低代码的定义来自Forrester报告,被认为是低代码一词的起源)。
低代码平台中的“模型驱动”与“表单驱动”有何区别?
|
9月前
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
368 8
|
传感器 存储 物联网
物联网的定义和原理
物联网 (IoT) 是指由嵌入传感器、软件和网络连接的物理设备、车辆、电器和其他物理对象组成的网络,允许它们收集和共享数据。这些设备(也称为“智能对象”)的范围可以从简单的“智能家居”设备(如智能恒温器)到可穿戴设备(如智能手表和支持RFID的服装),再到复杂的工业机械和运输系统。技术人员甚至设想了基于物联网技术的整个“智慧城市”。
2273 1
|
消息中间件 Kafka
消费kafka不需要设置 压缩协议吗 假如生产者压缩协议是lz4
消费kafka不需要设置 压缩协议吗 假如生产者压缩协议是lz4
|
Java 开发者
Java中的受检异常和非受检异常的区别
Java中的受检异常和非受检异常的区别
|
传感器 人工智能 算法
AI Agent的概念和原理
【1月更文挑战第22天】AI Agent的概念和原理
1382 1
AI Agent的概念和原理

热门文章

最新文章