背景

目前大部分的代码生成方式都是采用mybatis或者时mybatis-plus的插件来生成后端的业务增删改查代码,但是插件生成毕竟存在局限性,不利于灵活扩展,对于需要生成自定义项目结构更加不友好。

本文主要以码云开源项目cpms-cloud为例,讲解只通过velocity模板引擎如何搭建一个高扩展性、高度自定义的低代码生成器服务平台。

源码地址:cpms开源项目代码

演示地址:https://www.cpms.vip/

velocity模板引擎语法的使用自行搜索!!!

1.项目初始化脚本架生成

有时候我们需要做新的项目时,免不了需要搭建一个项目脚手架出来,定义目录的层级结构,包分层等等自定义化的操作。那么下面的这个功能将会大大的满足你需求

如下图我们可以定义脚手架的目录层级结构

Java 低代码 java 低代码 建模_Java 低代码

 比如上面的结构是cpms开源项目统一的包分层结构,有了这个功能我们可以把公司内部所有的新项目结构可以做一个很好的统一控制。

项目演示截图

1.首先创建脚手架工程

Java 低代码 java 低代码 建模_Java 低代码_02

 2.填写相关的脚手架基础信息

Java 低代码 java 低代码 建模_java_03

 上面的表单主要分为两个部分:工程基础信息(工程的包名、端口号、JDK版本、groupId、artifactId等)、数据源信息(支持多数据源配置)

创建完成后,我们就可以把刚刚添加的工程脚手架下载下来了

2.表的增删改查功能生成

在上面创建的脚手架工程下,我们可以生成该工程指定库的表的增删改查功能

如下图所示,根据自己开发的项目目录结构自定义需要的模板以及模板层级结构

Java 低代码 java 低代码 建模_自定义_04

项目演示截图

1.选择工程对应的数据库下的表

Java 低代码 java 低代码 建模_增删改查_05

注意上面的文件名称和目录名称有使用${}占位符,主要目的是为了生成过程中动态的替换文件名称;

项目中还涉及到动态数据源切换的操作,主要目的就是当我们的数据库新增或修改表结构的时候,我们可以实时的同步到我们本地项目的表中保存下来,免去了手动导入表结构,这里有别于大部分开源项目实现代码生成的方式;

最后

看到没,通过这种方式我们可以很灵活且自由的根据我们当前所开发的项目目录结构来动态的定义模板。

 项目中还涉及到大量的技术,这里就不一一讲解了,具体的实现逻辑可以阅读源码cpms-cloud