Java 的低代码平台是如何实现创建表并且生成对应的接口的?

319 天前
 twofox

最近想要学习一下低代码平台的实现细节(好在下家混点业绩

研究的平台是jeecgboot

里面有个 online 表单开发(非开源功能,但是开发非商业使用),也就是通过配置的方式,生成表.然后通过代码生成器生成对应的代码,只要在 IDEA 重启这个项目,就可以实现增删改查的接口和页面

商业版还有个在线表单设计,那个是一设计好表,就可以立马使用增删改查的接口的,也不需要重启,看起来像是热更新的技术。

请问这种效果有什么实现思路吗?

演示地址: http://boot3.jeecg.com/

演示账号

 登录账号 1:jeecg
 登录密码 1:jeecg#123456
 登录账号 2:qinfeng
 登录密码 2:jeecg#123456

ps:非开源的商业功能,都是通过依赖他们混淆过后的 jar 包实现的 ps: 这种开源开一半的是真难受啊

2579 次点击
所在节点    Java
12 条回复
mineralsalt
319 天前
这个项目挺好用的, 我现在开发的项目都是基于这个开源项目, 不用重复造轮子, 非常省事, 缺点就是比较臃肿, 但是无所谓, 你说的这个特性我没用过, 我都是建表之后, 下载代码复制到项目中, 因为重要编辑很多页面细节, 不可能完全使用他的在线表单
twofox
319 天前
@mineralsalt 对的,这个 online 表单其实就已经很好用了。但是有个缺点就是不可以商用,在公司用还是有点风险的。
并且我是比较想要学习他的热更新那块的技术实现。
musi
319 天前
不理解,创建表然后增删改查不都是 sql 就能完成的嘛,Java 执行 sql 还要重启?
wangsongyan
319 天前
不懂实现啊,如果写一个或多个带 pathvariable 变量的 requestmapping ,是不是就能解决单表基础增删改查了?
chunworkhard
319 天前
不是热更新吧,还没了解过, 我感觉是统一有个增删改查的接口,只要数据库中新增了表 , 后台动态查询配置 读取表 以及 映射字段 返回给前端, 前端这块应该也是有个统一的表单 列表页面吧, 通过读取后台的配置信息 生成相应的页面, 或者有其他方式
wxw752
319 天前
我们公司用的就是 jeecg 的商业版,5#说的是对的。其实就是每次打开的时候,前端 for 循环里 疯狂 if else 出需要的组件,最后组成表单页面
litchinn
319 天前
正好做过低代码项目

生成代码是通过模板引擎,只要你模板写的够全,能生成的代码就够细致

那个不需要部署代码就生效的倒是没做过,估计是传递表名等参数实现的动态查询,不推荐这种方式(但他们也不一定是这种方式实现的)。

低代码核心主要是两块,一个是代码生成,主要是写模板,另一个是对基础包的封装,也就是一个项目的基本配置,比如登录认证,用户管理,接口的标准化等等每个项目都需要的内容。将生成的 crud 代码放进这个基础包以完成功能开发。做的复杂点可以把基础包也做成可生成可定制的。

代码生成器可以看看这个
http:www.ballcat.cn/codegen/
https://github.com/ballcat-projects/ballcat-codegen

基础包配置的做法可以参考 jhipster https://github.com/jhipster/jhipster-bom ,他有个 CLI 可以命令行里初始化项目,但是我个人并不觉得这个好用,我自己现在是用模板引擎去配置

ps:jeecg 这个项目的代码质量前两年一直为人所诟病,有些功能的实现方式也有点问题。口碑毁誉参半,不知道现在有没有好点,当然这样的项目能开源出来还是好的
muyiluop
319 天前
可以抓包看看他的增删改查接口,想实现也有办法,一种是生成代码直接执行对应的代码。还有就是搞一个通用的增删改查接口,根据传入的 id 匹配对应的表,页面部分也是一样,增 /改的表单从后台获取到有哪些字段是要增加 /修改的,对应展示页面,然后提交保存就行。
AyaseEri
319 天前
你都看到这了,不妨再进阶一点看看华炎魔方
Edward4074
319 天前
楼上说的都是关于代码生成的,另一个路线是模型化,表结构是元数据,不需要实体类,使用类似 Map 的方式承接数据;这种方式变更的是模型,跟代码无关。
twofox
319 天前
@musi 不是,我在意的点是,增删改查的接口,到底是怎么实现的。是通过楼下说传递表名等参数实现的。还是新增代码,进行热更新实现的。
@wxw752 前端好理解,后端呢?增删改查就是用传递各种表名、列名到统一接口去处理的吗?商业版是花了多少钱的,可以透露么?是带源码的版本么

@litchinn jeecg 的 online 表单设计功能里面的代码生成就挺好用的。看了一下他们写的代码模板也确实是很详细。其他的技术细节实现的话,我不知道评价如何。但是我只记得大家都喷他假开源,前两年的开源版本,甚至没有任何的低代码功能,跟 ruoyi 没什么两样的。我是最近才发现他把部分的低代码功能开放了(不开源,只有混淆过后的 jar 包)。所以才想研究一下他的实现思路


@muyiluop 它的接口我用 xrebel 查看了,都是混淆过后的 jar 包实现的。代码生成的功能可以研究一下。但是那个在线表单设计,没有开放使用,也没办法扒拉源码


@Edward4074 五六楼说的也是模型化的思路吧。不过这种 map ,感觉性能不是很好。现在做的项目,我也做了这种类似的模块


@AyaseEri 这个确实没听过,我去看看,谢谢
caikiki
120 天前
@wxw752 老哥求一份商业版的 jar 包,可以购买。谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/951307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX