SpringBoot版的低代码开发平台,关联无 SQL,性能高10倍!

Posted Java知音_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot版的低代码开发平台,关联无 SQL,性能高10倍!相关的知识,希望对你有一定的参考价值。

点击关注公众号,实用技术文章及时了解

diboot 的设计理念

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

程序员很难被替代,但程序员应该聚焦于数据结构设计、业务实现、难点解决,重复 CRUD 没啥长进

低代码是未来的趋势,CRUD 类重复有规律的工作是可以被自动化甚至被省掉的

diboot 主要技术栈

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

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

  • 权限: spring boo 版本使用 Shiro+JWT;spring cloud 版本使用 spring security + oauth2

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

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

diboot 基础组件

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

主要特性:

  • 单表CRUD无SQL

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

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

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

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

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

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

2、IAM 身份认证基础组件 及 配套VUE前端框架(diboot-antd-admin、diboot-element-admin)
  • 开箱即用的RBAC角色权限模型与预置组织人员岗位模型

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

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

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

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

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

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

3、diboot-file 文件相关处理组件
  • EasyExcel轻量封装,支持Java注解校验与@ExcelBind*注解实现字典及关联字段的name-value转换,并提供完善的校验错误提示

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

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

4、diboot-scheduler 定时任务组件
  • Quartz定时任务统一管理及日志的最佳实践封装

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

5、diboot-message 消息通知组件
  • 通用的消息模板&模板变量的设计方案

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

6、diboot-mobile 移动端组件
  • 提供了配套的 diboot-mobile-ui ,内置了多种登录方式

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

diboot-core (diboot-core-starter) 使用步骤

  1. 引入依赖

<dependency>
   <groupId>com.diboot</groupId>
   <artifactId>diboot-core-spring-boot-starter</artifactId>
   <version>latestVersion</version>
</dependency>

或 Gradle:

compile("com.diboot:diboot-core-spring-boot-starter:latestVersion")
  1. 配置参数(数据源)

#datasource config
spring.datasource.url=jdbc:mysql://localhost:3306/diboot_example?characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=diboot
spring.datasource.password=123456
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
-------------------------------------------------------------------------
#diboot-core-spring-boot-starter的可选参数配置:
# 是否初始化sql,默认true,初始化之后(或非开发环境)可以改为false关闭检测
diboot.core.init-sql=false
  1. 配置config类

diboot-core-starter 默认预置了 mybatis-plus 的分页配置(使用 mybatis-plus 3.4.x的 MybatisPlusInterceptor 最新配置方式)。如果您依赖的是core-starter,则无需再次配置 mybatis-plus 的分页。

如果需要添加其他Interceptor,则需要重新定义 MybatisPlusInterceptor。示例如下:

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() 
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
    return interceptor;


//同时core-starter中也默认配置了HttpMessageConverters,如果需要更改默认配置, 则需要在配置类中重新定义HttpMessageConverters。
@Bean
public HttpMessageConverters jacksonHttpMessageConverters() 
    ...

注意:diboot-core-starter 预置了默认的配置以及字典表相关的接口实现,如果是老项目中仅依赖 diboot-core(非diboot-core-starter),则还需要将 diboot 的包路径加入 ComponentScan 中

diboot 新手体验

在 IDE 中克隆 playground 项目

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

URL 中输入如下 playground 项目路径,指定项目本地路径(避免中文路径),点击 Clone 按钮 :https://gitee.com/dibo_software/playground.git

待克隆完成后,在右侧 Maven 视图中,添加 demo 项目下的 pom.xml

准备数据库后使用 devtools 初始化代码

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

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

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

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

开源地址:

  • https://gitee.com/dibo_software/diboot

来源:开源技术专栏

推荐

Java面试题宝典

技术内卷群,一起来学习!!

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

以上是关于SpringBoot版的低代码开发平台,关联无 SQL,性能高10倍!的主要内容,如果未能解决你的问题,请参考以下文章

全网最全的低代码/无代码平台盘点:简道云伙伴云明道云轻流速融云集简云Treelab钉钉·宜搭腾讯云·微搭智能云·爱速搭百数云

有哪些比较好用的低代码开发平台?

java低代码开发平台都有哪些?

面对国内的低代码开发平台,开发人员和企业该如何选择?

面对国内的低代码开发平台,开发人员和企业该如何选择?

现在市场上都有哪些好用的低代码开发平台?