跟我学微服务统一开发平台-代码生成器

前面章节讲了技术选型,其实其技术选型这东西万变不离其宗,用的多越多,踩坑的机会越小,而且即使掉坑里了,前面很多人估计也遇到这个坑,其实就很容易爬出来。经过这几年微服务的全面普及,这一套技术栈已经火遍整个开发圈,一个新项目,如果不用前后端分离,不用微服务,就体现不出来架构的高端,体现不出来系统的复杂,其实这是一个误区。
这里不讨论技术选型的合理性,微服务真正开发起来,还是有一定的技术门槛的,不是说会写个“Hello World”,能用rest输出一个接口,就叫学会了,微服务更注重的是团队协作,各个组件各司其职,开发规范的设立就非常有必要,如果一个大的开发团队,没有开发规范,那微服务开发起来简直不可想象。好多项目组在开发之初都订立了规范,只不过都是以word方式的发布的,然后简单宣讲一下,大家开发都要照着规范来做,然后就没然后了,代码审查这个也多数是不了了之,在项目进度的巨大压力之下,完成功能及测试是第一位的,代码规范、优雅、可扩展这些都抛诸脑后了。现状使然,没有办法,笔者也写了好多版本的开发规范,只不过看的人少,记住的人更少,能照着做的微乎其微,当时为什么那么写规范,过一段时间后可能就忘了。

开发规范是软约束,怎样才能强约束呢?

所以就有了代码生成器这个的由来。一方面是简化开发人员的工作量,目前接触的这些系统、项目开发,其中有很大一部分精力要花费在CRUD这些基础的代码编写上来,而且还不一定做的完善,做完之后还需要测试人员反复测试。

  • 代码生成器可以解放基础开发工作,更多的精力投入到更有价值的业务逻辑设计中去。
  • 代码生成器可以以强约束的方式实现开发规范,后续的逻辑增补就不会影响框架式的规范了。
生成器截图.png

先秀一下截图,其实很low,就几个简单的配置界面。
先说一下代码生成器的新特性,毕竟是一个拿的出的版本。
1、一键生成Java代码,包括model、VO、DTO、Dao、Service、Controller
2、一键生成数据库建表脚本,适配Oracle、Mysql两种数据库
3、一键生成Vue前端脚本,包括index、表单、接口调用、路由代码等
4、反向抽取数据库结构,并一键生成代码
5、自定义配置查询字段
6、自动生成Swagger接口描述
7、自动生成表单格式校验及接口格式校验
8、自定义表单每行展示字段数
9、自定义表单维护类型,可路由跳转,可弹出窗口

基于上述特性,演示一下配置流程。

1、配置代码文件路径及选择数据库类型

全局配置界面.png

这里面一共六个参数:

  • 用户姓名:两个作用,一个是代码注释的作者,另一方便可以多用户共同使用该代码生成器,不至于混淆用户。
  • java api文件路径:存放java的controller文件;
  • java-biz文件路径:存放service、dao、model这些文件;
  • vue文件路径:存放vue的所有代码文件;
  • 模板文件路径:存放所有代码模板的路径;
  • 数据库类型:可以选择mysql或oracle。

2、配置数据表

数据表设计.png

这里假设配置一个企业基本信息管理,有6个字段,接下来要做这6个字段的增删改查操作。

首先进行数据表的配置:


数据表配置.png

解释一下基本配置信息:

  • 数据表名:数据表的名称,对应数据库表名
  • 描述:概要介绍一下这个数据表;
  • java 包名:就是model、dao这些类最外层的包名;
  • apiUrl全局配置:这个是vue用到的,用于配置各个api接口的通用前缀;
  • 是否分页:页面列表是否以分页方式展示
  • 是否新增:是否需要新增功能
  • 是否修改:是否需要修改功能
  • 是否删除:是否需要删除功能
  • 是否查询:是否需要查看功能
  • 一级模块代码:这里的一级模块是指这些功能的大类,比如ent
  • 一级模块名称: 比如企业管理
  • 二级模块代码:这里的二级模块是指具体的功能了,比如info
  • 二级模块名称:比如基本信息
  • 主键生成方式:这里包括两种,自增和人工设值
  • 主键字段:主键对应的数据库字段,这个要和字段列表的字段名一致
  • 排序字段:列表展示时需要的排序字段。

3、配置字段

先截图看下配置结果


字段配置.png

解释一下各个字段含义:


字段含义.png
  • 字段代码:对应数据表的字段名称,建议都小写
  • 字段描述:对应数据表的comments
  • 字段类型:该字段的数据类型,目前提供了字符、整数、小数、日期等选项
  • 是否可以为空:用于校验api接口及页面录入规则
  • 长度:指数据库字段的长度
  • 小数位数:如果为小数,指字段的小数位数
  • 输入长度:这个用于校验是否是汉字,如果是Oracle数据库,varchar(20)只能输入10个汉字
  • 是否列表字段:列表展示是否需要展示该字段
  • 是否查询字段:查询条件是否包含该字段
  • 列表宽度:列表展示时字段的宽度
  • 对齐方式:列表展示时对应方式

这里面还提供了反向提取字段的功能,如果数据表提前建好了,可以点击“加载数据表字段”按钮,从数据库中把字段都提取出来,然后简单配置一下即可:


加载字段.png

4、代码生成

4.1model代码

model代码.png

4.2文件创建

点击创建按钮,则可以自动生成对应的java文件


生成代码.png

4.3重复文件提示

如果该文件已经生成,则会提示是否覆盖


提示覆盖.png

4.3 一键生成所有java代码

点击“全部生成”按钮,可以生成所有的java代码


image.png

4.4生成sql建表脚本

sql建表脚本.png

在数据库执行该脚本,即可建表


建表.png

4.5生成vue的index文件

vue.png

4.6生成路由代码

修改路由文件.png

5见证奇迹的时刻

目前没有写一行代码,仅仅配置了一些参数。
系统编译一下,vue也会自动加载

首页面.png

目前页面是空数据的,没有内容,可以新增一条记录试试:


修改数据.png
新增一条数据.png

6总结

增删改查功能均具备,能减轻日常开发人员很大的体力劳动。为什么说体力劳动呢,因为这些代码均是不用思考,只要细心就能写对的代码,只不过是一个重复性的工作而已。
当然有了这个东西,后续还需不需要练基本功呢?
编程的基本功当然需要,尤其是快速调错,快速定位问题的能力,基本功越扎实,越能体现编码能力的深度,越能在复杂情况下游刃有余。如果你是一个新手,新入门的小白,建议还是从零开始做起,从基本的增删改查做起,掌握每个技术细节。

希望大家有个好心情,每天看到大量的重复工作时,心里偷偷在乐,给我安排一周的工作,我一天就干完了,剩下的时间划水好呢,还是摸鱼好呢?!

代码浏览

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341