SpringBoot版的低代码开发平台Diboot,炒鸡好用。

        大家好,今天在逛开源社区的时候,发现了一个基于 Spring Boot 技术体系的低代码开发平台 Diboot 挺有意思的,号称“关联无 SQL,性能高 10 倍”。

  • Gitee 地址:https://gitee.com/dibo_software/diboot

  • 官网:https://www.diboot.com

体系架构图

diboot平台组成结构图

主要技术栈

  • 后端 Java + 关系数据库,跟紧 Spring 体系 (Spring Boot、Spring Cloud)

  • ORM 站队 Mybatis,通用 Mapper 框架选用 Mybatis-plus

  • 权限: Spring Boot 版本使用 Shiro+JWT;Spring Cloud 版本使用 Spring Security + Oauth2

  • 前后分离,前端选型 Vue,支持 ElementUI 和 Antd vue pro

基于 diboot-core 的 CRUD 和常规关联的

设计理念

  • Web 开发需要一个普适的基础框架,把复杂的问题简单化,最好还能做到更佳性能,让开发人员避开常见问题

  • 程序员很难被替代,但程序员应该聚焦于数据结构设计、业务实现、难点解决,提高解决问题的能力(未来竞争力)

  • 低代码是未来的趋势,CRUD 类重复有规律的工作应该交给工具去做

效果图

演示地址:http://demo.diboot.com/ 。

工作台:

代码生成:

事务管理:

组织管理:

特点

  • 基础组件高效简化,SQL 代码减少 80%以上,降低开发门槛

  • 优雅注解省掉关联查询场景的 SQL 代码,彻底告别重复 CRUD

  • 更优的 RBAC 权限与访问控制 (权限自动提取、无状态、多方式登录)

  • 定时任务、消息通知、Excel 导入导出等组件更合理的实践封装...

  • 单体应用、移动端、微服务、工作流,更广的开发场景覆盖

优势

  • 极简易用(pom 中引入依赖 jar,配置参数后,即可随应用启动 UI 界面)

  • 功能强大(数据结构与代码同步、前后端、面板组件、移动端一键生成)

  • 代码标准(devtools 标准化了数据结构定义与代码规范,降低维护成本)

  • 配置灵活(可按需配置生成代码路径、模块前缀及LombokSwagger

  • 支持多库(支持 MySQL、PostgreSQL、达梦、人大金仓等 7 种主流数据库)

基础组件

1、 diboot-core: 精简优化内核:写的更少,性能更好

主要特性:

  • 单表 CRUD 无 SQL

  • 关联绑定无 SQL(注解自动绑定)

  • 数据字典无 SQL(注解自动绑定)

  • 跨表查询无 SQL(自动构建 QueryWrapper 与查询)

  • BaseService 扩展增强,支持常规的单表及关联开发场景接口

  • 其他常用工具类、状态码、异常处理的更优实践封装

基于 diboot-core 的 CRUD 和常规关联的功能实现,代码量比传统 Mybatis 项目减少 80%+,且性能更好更易维护。

详细文档: https://www.diboot.com/guide/diboot-core/introduce.html

2、IAM 身份认证基础组件 及 配套 VUE 前端框架(diboot-antd-admin、diboot-element-admin)

  • 开箱即用的 RBAC 角色权限模型与预置组织人员岗位模型

  • 基于无状态 token 的认证授权,支持刷新 token

  • 简化的 BindPermission 注解,支持兼容 shiro 的简化权限配置与自动鉴权

  • 自动提取需要鉴权的后端接口, 借助前端功能方便配置菜单按钮权限

  • 无缝适配 redis,引入 redis 依赖即可启用 shiro 的 redis 缓存

  • 支持基于注解的数据权限实现、简化的 Log 注解记录操作日志等

  • 支持灵活的扩展能力(扩展多种登录方式、灵活替换用户实体类、自定义缓存等)

详细文档:https://www.diboot.com/guide/diboot-iam/introduce.html

3、diboot-file 文件相关处理组件

  • EasyExcel 轻量封装,支持 Java 注解校验与@ExcelBind注解实现字典及关联字段的 name-value 转换,并提供完善的校验错误提示

  • 文件存储接口化,预置本地存储,简单扩展 OSS、分布式存储等实现

  • 封装常用的文件上传下载、图片压缩水印等常用处理

详细文档: https://www.diboot.com/guide/diboot-file/introduce.html

4、diboot-scheduler 定时任务组件

  • Quartz 定时任务统一管理及日志的最佳实践封装

  • @CollectThisJob 注解提供定时任务定义,自动收集供前端选择

详细文档: https://www.diboot.com/guide/diboot-scheduler/introduce.html

5. diboot-message 消息通知组件

  • 通用的消息模板&模板变量的设计方案

  • 支持多通道的消息通知发送

详细文档: https://www.diboot.com/guide/diboot-message/introduce.html

6. diboot-mobile 移动端组件

  • 提供了配套的 diboot-mobile-ui ,内置了多种登录方式

  • 支持 账号密码登录、微信小程序登录(自动注册)微信公众号登录(自动注册)

详细文档: https://www.diboot.com/guide/diboot-mobile/introduce.html

使用

1. 克隆 playground 项目

以 IDEA 为例:

"File -> New -> Project from version control..."菜单打开克隆项目对话框:

新建项目

URL 中输入如下 playground 项目路径,指定项目本地路径(避免中文路径),点击 Clone 按钮:

https://gitee.com/dibo_software/playground.git

克隆项目

提示:如没有 git 环境,也可以通过访问 https://gitee.com/dibo_software/playground 下载项目 zip 包导入的方式创建项目。

提示:master 分支为正式版本,体验请基于 master 分支。

待克隆完成后,在右侧 Maven 视图中,添加 demo 项目下的 pom.xml,以让 IDEA 识别为 maven 项目。

设置maven项目

2. 准备空数据库

在你的开发库中创建一个数据库实例,比如: playground

-- mysql示例
CREATE DATABASE playground DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

根据你本地情况修改 application.properties 中的配置参数,比如:

  • 数据库连接信息:

    • spring.datasource.url=

    • spring.datasource.username=

    • spring.datasource.password=

  • 前端项目相对路径(前端 Vue 框架选择 antd 还是 element,默认是 antd):

    • diboot.devtools.output-path-admin-ui=diboot-antd-admin/

  • 默认本地文件存储路径:

    • diboot.component.file.storage-directory=D:/temp/playground

3. 运行 demo 项目

  • 点击 "Add Configuration...",添加 DemoApplication 启动类配置。添加的应用类型可以选择"Spring Boot" 或 "Application"(社区版 IDEA)。

运行

注意:取消勾选 "JMX agent" 选项,以免报 JMX 异常信息干扰查看控制台日志。

进入 devtools 正常情况下启动完毕会打印如下 devtools 入口信息:

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Diboot devtools v2.x.x 初始化完成:
-> URL: http://localhost:8080/api/diboot/index.html
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

如您的 IDEA 启动完成并未打印出该信息,则您的版本对 maven 的 provided 支持有差异,需要手动删除 devtools 依赖配置中的:

<scope>provided</scope>

如下图所示:

移除provided

提示:devtools 是开发过程工具,正式打包前需要剔除 devtools 依赖。

4. 使用 devtools 初始化代码

点击控制台中打印出的 URL,进入 devtools 操作页面。(个人用户初次使用需要扫码)

初次启动 devtools 会提示初始化组件的基础代码(为了方便自定义修改,devtools 将 controller 等代码生成到本地项目中)。依次点击各组件的"生成代码"按钮。

生成初始代码

打开 demo 目录下的 java 目录,将会看到相关组件的初始化代码已生成。

5. 重启 demo 后端项目

重启 DemoApplication,确保新生成的后端代码生效

注意 :因登录验证相关的 controller 需要在步骤 4 中生成,如启动前端后发现验证码无法显示,则需要检查是否执行了步骤 4 并重启了后端项目。

6. 启动前端

安装 node 运行环境 (node 版本建议选择 v14.x,以避免兼容性问题)

切换到对应的前端路径下,依次运行以下命令,安装依赖组件及运行前端:

# yarn(推荐)
yarn install
yarn run serve
# 或者 npm
npm install
npm run serve

启动成功后,打开链接进入前端,输入账号: admin/123456 登录系统,即可进入管理后台。

登录

以上就完成了 diboot 基础项目的初始化搭建,接下来我们来体验使用 devtools 生成代码吧。

7. 使用 devtools 生成后端代码

点击"数据表管理"菜单,在这里可以建表、维护表字段与关联关系、索引、生成及更新后端代码等。

数据表管理

8. 使用 devtools 生成前端代码

devtools 除了具备后端能力外,还有强大的 CRUD、导入导出、前端组件编排、移动端等完整功能的生成能力 (devtools 订阅用户专享,新用户可免费体验 7 天)。

点击控制台中打印出的 devtools URL,进入 devtools 操作页面,点击"PC 前端功能生成" 或 "前端面板组件生成" 或 "移动端前端生成", 在这里可以配置生成前端页面增删改查、导入导出、弹框表单、多 tab 页展示、树形结构、时间轴、统计图表、移动端等各种场景的前端代码生成。

·········  END  ··············

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Diboot是一个面向开发人员的代码开发平台,将重复性的工作自动化,提高质量、效率、可维护性。 diboot主要有diboot-core和diboot-devtools组成,diboot-core又为springboot专门封装了diboot-core-spring-boot-starter组件,diboot-devtools也以starter提供。 diboot特点: 1、专门为springboot开发,引入依赖,配置好相对路径即可使用; 2、并且支持较为常用的五种数据库(MySQL,ORACLE,SQLServer,PostgreSQL,MariaDB); 3、代码自动生成到项目相应的目录下; 4、数据库表结构更改后,可以同步更改对应文件的代码,而不影响到你自己写的代码; 5、基础框架中依靠注解实现的数据关联(一对一、一对多、多对多、数据字典关联等),将关联问题简单化了; 6、对数据关联设置简单,代码生成与更新也可以自动支持一对一、一对多、多对多、数据字典关联; 7、支持开发以及维护过程中对数据库相关表的数据结构更改进行记录,并写入到对应的数据库更改日志文件中; 8、支持启用lombok的代码形式; 9、支持启用swagger的项目; 10、依赖少、简便轻量、灵活性高。   Diboot代码开发平台 更新日志: v2.2.1 新增: @BindQuery注解新增strategy参数,支持空值处理策略(默认忽略空字符串) 基于Spring的内存缓存实现(BaseCacheManager),并优化绑定缓存实现 SqlFileInitializer新增executeMultipleUpdateSqlsWithTransaction,支持事务的多SQL更新 BaseService新增IService的getMap(queryWrapper)等接口 @CollectThisApi注解,自动提取注解对应的rest接口 工具类 S.splitToList,D.formatDurationLabel等 优化: 关联绑定的实现中字段名列名的转换由规则转换改为精确转换 支持BindField&BindDict组合使用 BeanUtils.convertValueToFieldType支持LocalDateTime转换 修复: 修复@BindQuery查询不支持自定义逻辑删除字段的问题 升级依赖jar至最新(spring boot 2.4.5, mybatis-plus 3.4.2等)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavinLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值