中秋节过完马上又是国庆节,假期跟几个同为程序猿的哥们交流技术(chedan),低代码被提及到比较多,主要涉及的低代码平台有jeecg-boot还有前端低代码平台amis,学习过程中也发现一个不错的低代码平台Erupt,感谢这些平台开发大佬。


前言

或许很多程序员工作中用不到低代码平台,但是个人认为玩转一个低代码平台,学习低代码平台的技术栈能够系统的提高自己技术储备。1.低代码平台通常是提供了一套完整的解决方案,涉及到工作流、报表、前后端环境及部署、数据中台、分布式锁、移动支付、短信验证码平台的接入等等,把低代码平台当做一个技术学习与实践应用平台是非常不错的选择;2.学习低代码平台对编程语言的高级应用;3.低代码平台提供的完整的表设计及模板代码生成也能够帮助我们减少重复工作。


概念与特征

低代码开发平台(LCDP)是无需编码(0代码)或通过少量代码就可以快速生成应用程序的开发平台。通过可视化进行应用程序开发的方法,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程序。低代码开发平台(LCDP)的正式名称直到2014年6月才正式确定,整个低代码开发领域却可以追溯到更早前第四代编程语言和快速应用开发工具。(来自于百度百科)


通过对百度百科介绍的解读,低代码平台需要具备以下几个特征:

  • 0代码或少量代码快速生成应用
  • 提供可视化界面进行程序开发
  • 使用拖拽等操作实现客户端的搭建

根据以上特征,我们可以了解低代码的平台的构成,也就知道了低代码能够做什么。如果抛出平台二字,我们开发中备受欢迎的mybatis-plus可以称为低代码持久化框架,因为框架帮助我们降低了代码量。随着低代码平台的流行,一个框架如果能够帮助我们降低代码量,这也算得上是框架的优势之一了,所以很多低代码平台都引用了类似于mybatis-plus、lombok之类的框架。

JEECG-BOOT踩坑指南

JEECG官网 开发文档

上面的链接中,我附带了jeecg-boot官方提供的开发文档,文档非常详细,包含环境准备、搭建、部署、使用相关内容,但是在实际实践中,还是会遇到小问题,当然这不是jeecg-boot本身的问题,而是我们使用默认环境的问题。

问题

初始化数据库脚本报错

  • 根据官方流程,我们拉下jeecg-boot相关代码,安装数据库(我用的是mysql5.7.20),docker安装

jeecg-boot数据库使用的字符集为uft8mb4,支持存储emoji表情、utf8存储emoji会报错,不了解此方面的同学可以当个拓展知识点

  • 执行数据库初初始化脚本(jeecgboot-mysql-5.7)

amesim库添加 amesim怎么添加库_spring boot

使用Navicat执行初始化脚本,在执行1084条后就停止执行了,通常这种情况我们可能会去查看一下sql脚本是否有问题,经过检查报错位子的脚本,拷贝出来单挑执行是OK的,于是经过各种调研(百度),原来是mysql限制了执行脚本大小,默认为2M,这个mysql脚本大小为6M

  • 脚本信息

amesim库添加 amesim怎么添加库_java_02

解决办法

  • 将此脚本拆分为多个小于2M的脚本,按顺序依次执行,注意不要拆到语句中间就行了。
  • 修改数据库配置,将脚本大小限制调大一些

修改方式根据部署的方式不同略有差别,我们需要修改就是max_allowed_packet这个配置项,修改后删除之前执行了错误产生的数据,再次执行脚本即可,下面是docker下mysql修改此配置项的命令

1.进入mysql容器
docker exec -it mysql bash
2.进入配置文件所在文件夹
cd /etc/mysql/mysql.conf.d/
3.修改配置文件
vi mysqld.cnf
4.在文件中[mysqld]下面另起一行 添加配置信息
max_allowed_packet=200M
5.保存
esc :wq
6.退出容器 exit
7.重启mysql服务docker restart mysql

复制代码

容器中没有vim需要安装vim,建议配置好加速再操作,不然会很慢

启动报错

处理好数据库的初始化问题,按照官方文档修改了配置文件中的数据库地址,配置好redis,然后启动jeecg-boot服务后报错

amesim库添加 amesim怎么添加库_spring boot_03

解决办法

报错信息的意思就是说QRTZ_LOCKS这个表不存在,我们查看数据库,这个表是存在的,但是表名是小写,问题就定位到了,mysql默认表名称大小写是敏感的,jeecg-boot生成的sql中表名称都是大写,解决此问题就是修改mysql表名称大小写敏感配置项lower_case_table_names=1,具体操作参考上面修改配置项即可

后端服务启动完成

解决掉这两个问题,jeecg-boot的服务端就可以顺利启动了!!!

前端

前端服务只需要按照官网文档修改好相关配置,构建后启动即可

Docker极简部署

为了方便部署一个学习环境,我按照官方推荐的极简部署方案将前端代码放到后端服务jeecg-boot-module-system 项目的 /src/main/resources/static目录下,然后使用JAR部署方案将后端服务达成jar包,然后将jar包上传到docker宿主机环境中,构建docker镜像进行部署,详细操作如下:


  • 修改前端服务配置(参考官方文档-极简部署方案)

amesim库添加 amesim怎么添加库_mysql_04

  • 改完前端配置文件,后续按照极简部署方案第三步及后面的步骤进行操作
  • 前后端代码准备完毕,修改后端配置文件中mysql、redis配置,修改为docker容器中对应服务名称即可,如mysql:3306...,注意修改的是prod后缀的yaml文件

amesim库添加 amesim怎么添加库_spring boot_05

amesim库添加 amesim怎么添加库_amesim库添加_06

  • 按照官方文档JAR部署方案第四步及后面步骤进行操作
  • jar包打好了 ,修改名称为jeecg.jar,docker宿主机使用rz命令上传到服务器中
  • 在服务器jar所在目录创建Dockerfile文件内容如下
FROM frolvlad/alpine-java
COPY jeecg.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
复制代码
  • 在当前目录执行命令创建镜像 docker build -t jeecg .
  • 启动服务 docker run -d --name jeecg -p 8080:8080 --link redis --link mysql jeecg
  • 使用--link是因为我创建其它容器时没将容器加入同一个网络,所以需要使用--link保证服务于mysql及redis的通信,docker网络相关知识可以参考掘金文章链接
  • 服务启动完毕

部署小结

因为官方文档的docker部署需要使用docker for windows,我更加习惯使用虚拟机部署ubuntu安装docker部署一些自己开发及学习环境,所以结合官方教程整了一个docker极简部署,适合新手在自己的电脑上搭建开发环境同时学习一下docker,不会docker的同学可以通过学习一下docker单机环境搭建相关,比较简单

使用

使用jeecg-boot低代码平台官方文档有详细的介绍,在使用中由于对整个平台业务了解不够,我在使用代码生成后,将生成的前后端代码添加到服务中,页面没有显示出来,后来发现添加菜单需要配置权限,所以建议在搭建好学习环境后,使用前要充分了解整个平台的业务设计,避免因为不了解而把正常业务当做问题。

Erupt(轻量级低代码平台)

Erupt官网

相对于JEECG-BOOT,Erupt更加轻量级一些,对于纯后端程序猿也更加方便(无需前端相关基础),只需要在springboot2.x的项目中添加相关maven依赖即可,官方的快速开始手册照着做就可以成功完成平台搭建,遇到的问题和解决办法我也在官方文档中找到,参考链接即可。

总结

低代码平台很多,作为程序员,除了编码以外了解一些主流的低代码平台的使用及搭建也是非常有必要,本次主要介绍了jeecg-boot的上手及问题的解决方案,对于Erupt搭建及使用没有遇到什么环境上的问题,上手快,推荐大家都可以部署起来学习一下。

作者:热黄油啤酒
链接: