最近想要学习一下低代码平台的实现细节(好在下家混点业绩
研究的平台是jeecgboot
里面有个 online 表单开发(非开源功能,但是开发非商业使用),也就是通过配置的方式,生成表.然后通过代码生成器生成对应的代码,只要在 IDEA 重启这个项目,就可以实现增删改查的接口和页面
商业版还有个在线表单设计,那个是一设计好表,就可以立马使用增删改查的接口的,也不需要重启,看起来像是热更新的技术。
请问这种效果有什么实现思路吗?
演示地址: http://boot3.jeecg.com/
演示账号
登录账号 1:jeecg
登录密码 1:jeecg#123456
登录账号 2:qinfeng
登录密码 2:jeecg#123456
ps:非开源的商业功能,都是通过依赖他们混淆过后的 jar 包实现的 ps: 这种开源开一半的是真难受啊
1
mineralsalt 2023-06-25 01:34:23 +08:00
这个项目挺好用的, 我现在开发的项目都是基于这个开源项目, 不用重复造轮子, 非常省事, 缺点就是比较臃肿, 但是无所谓, 你说的这个特性我没用过, 我都是建表之后, 下载代码复制到项目中, 因为重要编辑很多页面细节, 不可能完全使用他的在线表单
|
2
twofox OP @mineralsalt 对的,这个 online 表单其实就已经很好用了。但是有个缺点就是不可以商用,在公司用还是有点风险的。
并且我是比较想要学习他的热更新那块的技术实现。 |
3
musi 2023-06-25 06:40:05 +08:00 via iPhone
不理解,创建表然后增删改查不都是 sql 就能完成的嘛,Java 执行 sql 还要重启?
|
4
wangsongyan 2023-06-25 07:36:39 +08:00 via iPhone
不懂实现啊,如果写一个或多个带 pathvariable 变量的 requestmapping ,是不是就能解决单表基础增删改查了?
|
5
chunworkhard 2023-06-25 08:40:39 +08:00
不是热更新吧,还没了解过, 我感觉是统一有个增删改查的接口,只要数据库中新增了表 , 后台动态查询配置 读取表 以及 映射字段 返回给前端, 前端这块应该也是有个统一的表单 列表页面吧, 通过读取后台的配置信息 生成相应的页面, 或者有其他方式
|
6
wxw752 2023-06-25 08:57:43 +08:00
我们公司用的就是 jeecg 的商业版,5#说的是对的。其实就是每次打开的时候,前端 for 循环里 疯狂 if else 出需要的组件,最后组成表单页面
|
7
litchinn 2023-06-25 09:03:43 +08:00
正好做过低代码项目
生成代码是通过模板引擎,只要你模板写的够全,能生成的代码就够细致 那个不需要部署代码就生效的倒是没做过,估计是传递表名等参数实现的动态查询,不推荐这种方式(但他们也不一定是这种方式实现的)。 低代码核心主要是两块,一个是代码生成,主要是写模板,另一个是对基础包的封装,也就是一个项目的基本配置,比如登录认证,用户管理,接口的标准化等等每个项目都需要的内容。将生成的 crud 代码放进这个基础包以完成功能开发。做的复杂点可以把基础包也做成可生成可定制的。 代码生成器可以看看这个 http:www.ballcat.cn/codegen/ https://github.com/ballcat-projects/ballcat-codegen 基础包配置的做法可以参考 jhipster https://github.com/jhipster/jhipster-bom ,他有个 CLI 可以命令行里初始化项目,但是我个人并不觉得这个好用,我自己现在是用模板引擎去配置 ps:jeecg 这个项目的代码质量前两年一直为人所诟病,有些功能的实现方式也有点问题。口碑毁誉参半,不知道现在有没有好点,当然这样的项目能开源出来还是好的 |
8
muyiluop 2023-06-25 10:09:56 +08:00
可以抓包看看他的增删改查接口,想实现也有办法,一种是生成代码直接执行对应的代码。还有就是搞一个通用的增删改查接口,根据传入的 id 匹配对应的表,页面部分也是一样,增 /改的表单从后台获取到有哪些字段是要增加 /修改的,对应展示页面,然后提交保存就行。
|
9
AyaseEri 2023-06-25 14:46:24 +08:00
你都看到这了,不妨再进阶一点看看华炎魔方
|
10
Edward4074 2023-06-25 15:15:53 +08:00
楼上说的都是关于代码生成的,另一个路线是模型化,表结构是元数据,不需要实体类,使用类似 Map 的方式承接数据;这种方式变更的是模型,跟代码无关。
|
11
twofox OP @musi 不是,我在意的点是,增删改查的接口,到底是怎么实现的。是通过楼下说传递表名等参数实现的。还是新增代码,进行热更新实现的。
@wxw752 前端好理解,后端呢?增删改查就是用传递各种表名、列名到统一接口去处理的吗?商业版是花了多少钱的,可以透露么?是带源码的版本么 @litchinn jeecg 的 online 表单设计功能里面的代码生成就挺好用的。看了一下他们写的代码模板也确实是很详细。其他的技术细节实现的话,我不知道评价如何。但是我只记得大家都喷他假开源,前两年的开源版本,甚至没有任何的低代码功能,跟 ruoyi 没什么两样的。我是最近才发现他把部分的低代码功能开放了(不开源,只有混淆过后的 jar 包)。所以才想研究一下他的实现思路 @muyiluop 它的接口我用 xrebel 查看了,都是混淆过后的 jar 包实现的。代码生成的功能可以研究一下。但是那个在线表单设计,没有开放使用,也没办法扒拉源码 @Edward4074 五六楼说的也是模型化的思路吧。不过这种 map ,感觉性能不是很好。现在做的项目,我也做了这种类似的模块 @AyaseEri 这个确实没听过,我去看看,谢谢 |