低代码开发平台的设计与实现:基于元数据模型
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 技术分层架构

在介绍实例的相关服务之前,先介绍一下系统技术分层。本书采用的技术分层架构如图2-1所示,相对标准的Spring技术分层规范,只在DAO层和Service层之间放入DM层(数据映射层),用于屏蔽Service层和DAO之间的数据库表结构细节。

img

图2-1 技术分层架构

在上述分层中,业务模型位于Service层,当Service持久化业务模型时,它调用数据映射层DM,入参是业务模型,DM层调用DAO持久化对象,将其转换为SQL,最终保存到数据库。本书介绍的DAO层中不存在Entity对象,因为采用了元数据模型,数据库表结构不确定,所以无法在系统中内置固化结构的Entity类,在DM层实现业务对象(BusinessObject)和SQL互转。如果不引入DM层,则意味着SQL对Service可见,未来更换数据库系统时,需要同时修改Service层和DAO层的逻辑。如果存在DM层,则只需要修改DM及DAO层。Controller和Service之间传递参数为业务对象,使得Service对外提供基于业务模型的共享服务。Controller层与前台之间由于技术异构,需要做模型转换,以便在将业务模型转换为特定技术所需要模型时,尽可能地保持各层次之间业务模型的一一映射,而不破坏模型的完整性(不裁剪或重组模型以适应某个特定场景),从而使得Controller对外服务也具有共享性。前端采用Vue技术,前台JavaScript与后台Controller之间采用JSON格式进行交互。由于本书聚焦于元数据模型,略去了关于微服务相关技术细节的讨论。