案例
今天我们通过一个实际案例来辅助说明下低代码平台的设计。
之前开源了一套通用接口平台,详见专栏https://blog.csdn.net/seawaving/category_11610162.html。
我们将其迁移整合一下,使其成为开发平台的一个功能模块。
接口平台自身基础数据的维护,如应用、接口服务、消息主题等,需要实现相应的管理功能。
创建模块
属性 | 说明 |
---|---|
应用 | 模块隶属于哪个应用,考虑到应用数量有限,属性也较少,没新建实体,使用数据字典来做一个简易化管理 |
名称 | 模块中文名称,没啥好说的 |
编码 | 模块编码,关键属性,用做唯一性标识,同时也是前端的目录名和后端模块的包名 |
缩略码 | 模块的缩略码,用于该模块库表的前缀 |
包路径 | 模块所处的包路径 |
排序 | 用来排序,下文不再重复列出 |
备注 | 就是备注,下文不再重复列出 |
上面这个例子中,因为cip(common-interface-platform)本身就是缩写了,体现不出编码和缩略码的差别来。
再举一个例子方便理解差异,比如系统管理模块,编码是system,缩略码是sys,编码system用于前端目录名和后端的包名,缩略码sys用于该模块库表的前缀。
创建实体
先选一个简单的实体来做实例。
接口平台首先需要维护对接的应用数据,这里就以应用这个实体为例。
属性 | 说明 |
---|---|
模块 | 实体隶属的模块,从上面第1步配置的数据列表中选择 |
名称 | 实体中文名称 |
编码 | 实体的英文编码,复用,作为后端实体类名、库表名 |
作者 | 用于标注实体的开发人员,会生成代码类注释中@author属性 |
开发平台内置了处理逻辑,在保存实体的时候,会自动创建一个同名的实体模型,并将其自动设置为主模型,减少重复性工作,提升开发效率。
点击保存按钮,返回列表,点击应用这行右方的配置按钮,进入实体配置页面,如下:
左侧是导航,分为两块,一是数据模型,二是视图。
配置数据模型
属性 | 说明 |
---|---|
父模型 | 通过继承理念实现模型的复用与扩展,预置了标识模型、映射模型、业务模型、流程单据四种模型,可扩展 |
名称 | 中文名称 |
编码 | 英文编码,一方面作为java类的类名,另一方面作为库表名称(实际是库表名称的后半段,前面会加模块缩略码,避免出现不同模块下存在同名实体导致库表名重复问题) |
是否主模型 | 每个实体,下面可能有多个模型,需要标记一个主模型作为主体,如销售订单实体,是由订单和订单明细两组成,这时候,将订单标记为主体 |
是否自关联 | 部分实体是自关联关系,如组织机构,标记自关联后,代码会在代码生成中进行额外处理,如在controller中增加获取树状结构数据的接口。 |
在数据模型的属性中,可以选择父级模型,系统预置了四个模型:标识模型(只有标识id属性)、映射模型(继承于标识模型,附加了创建人、创建时间、修改人、修改时间)、业务模型(继承于映射模型,逻辑删除标识位)、流程模型(继承于业务模型,附加了与流程相关的一系列发起人、流程状态等属性)。
通过继承理念实现模型的复用与扩展。
这么设计,一方面可以保持系统公共属性高度一致,另一方面简化了业务实体的配置,使其可以专注于自身的属性。
配置模型属性
行记录上点击“配置属性”按钮,打开模型属性配置功能,如下:
点击新增按钮,创建新属性:
属性 | 说明 |
---|---|
名称 | 属性中文描述 |
编码 | 属性英文编码,对应java实体类中的属性,遵循小驼峰命名规范,平台依据该属性生成数据库字段名,驼峰命名风格自动转换为蛇形风格(全部小写,单词间使用下划线分隔) |
数据类型 | 属性的数据类型,包括基本类型(如文本、整形、长整型、浮点数、日期时间等)和复杂类型(如数据字典、实体),可扩展 |
控件类型 | 属性的默认展示控件,随数据类型自动变化,如文本,对应普通文本、长文本和富文本。 |
最大长度 | 属性长度设定,对应库表字段长度设置。 |
默认值 | 默认值填充,新建实体时,服务层会自动读取配置,设置属性对应的默认值。 |
是否可为空 | 属性是否允许为空,如不能为空,生成vo对象时,会自动添加验证注解@NotBlank。 |
是否唯一 | 值是否唯一,如唯一,生成服务时,会在创建或修改前,自动生成数据验证逻辑。 |
唯一性参照 | 保持为空进行全局唯一验证,可选择本实体模型其他属性,代表该属性值下唯一,通常用于父子类型数据结构下,同一父级下不能重复。 |
是否主属性 | 标记是否为主属性,该属性视为实体的主要显示属性,当该实体用于其他实体关联时,将该属性作为显示值 |
是否上级属性 | 用于标记该属性是否关联到上级 |
这里的属性,有些看上去跟模型属性无关,比如控件类型,显示格式等,放到视图配置类更合适。之所以放到实体模型属性这里,是从开发效率的角度考虑。同一模型,会配置多个视图,多次使用属性,将属性的默认显示放到实体属性里配置后,简化视图环节配置,避免重复配置,提升效率。
按照相同的操作方式,创建其他属性。
当数据类型选择数据字典时,会自动出现字典类型选择控件,选择系统中设置的数据字典。
控件类型也会出现下拉列表和单选按钮组,通常字典项少的情况下2-3项,使用单选按钮组,操作简便,显示直观,如字典项多,则会占用大量页面显示面积,这时候,使用下拉列表更佳。
字典类型选中后,默认值的数据列表也会自动加载,可根据实际情况选择是否需要设置默认值,以及将哪个字典项作为默认值。
所有属性配置完成如下图所示。
今天先到这,视图部分超级复杂,留待下篇专题说明。
开发平台资料
平台名称:一二三应用开发平台
平台简介:企业级通用低代码应用开发平台,免费全开源可商用
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT
如果您在阅读本文时获得了帮助或受到了启发,希望您能够喜欢并收藏这篇文章,为它点赞~
请在评论区与我分享您的想法和心得,一起交流学习,不断进步,遇见更加优秀的自己!