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

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

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 configspring.datasource.url=jdbc:mysql://localhost:3306/diboot_example?characterEncoding=utf8&serverTimezone=GMT+8spring.datasource.username=dibootspring.datasource.password=123456spring.datasource.hikari.maximum-pool-size=5spring.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。示例如下:

@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); return interceptor;}//同时core-starter中也默认配置了HttpMessageConverters,如果需要更改默认配置, 则需要在配置类中重新定义HttpMessageConverters。@Beanpublic HttpMessageConverters jacksonHttpMessageConverters() { ...}

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

diboot 新手体验

在 IDE 中克隆 playground 项目

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

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

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

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

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

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

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

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

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

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

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

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

开源地址:

https://gitee.com/dibo_software/diboot

原文链接:https://mp.weixin.qq.com/s/XYQ_0w0wtsKcLK0jvkdJIg

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年12月28日 上午11:51
下一篇 2023年12月28日 下午12:03

相关推荐

  • 王选的科研项目

    王选教授的科研项目 王选教授是清华大学计算机系的一名著名教授,他的科研项目涉及多个领域,包括人工智能、机器学习、自然语言处理等。他的研究方向主要集中在文本挖掘和知识图谱领域。 王选…

    科研百科 2025年3月24日
    0
  • 手把手做项目财务管理 – (成本篇1)(项目的财务成本)

    项目成本管理一般会贯穿整个项目生命周期。 为了日后较好的分析各阶段的成本,我们可以在每个项目下设置一个子编码,来定义为各个项目的运行阶段。 在没有按完工比法结转成本前,我们依然放在…

    科研百科 2023年8月3日
    163
  • 市政道路工程监理-如何确保施工质量和进度(道路施工质量保证措施)

    在市政道路施工过程中遇到困难或问题时,确保施工质量和进度是一个重要的挑战。以下是我们采取的措施: 优先保证施工质量:在遇到困难或问题时,我们首先会确保施工质量不受影响。我们会加强对…

    科研百科 2024年6月11日
    83
  • 新疆若羌:“三个坚持”加强和推动党员干部积分制管理工作

    为深入贯彻落实“五个好”标准化规范化党支部和打造“四个合格”党员队伍的部署要求。新疆若羌县统计局积极探索党建工作与业务工作深度融合,健全完善党员干部积分制管理机制,全面强化党支部坚…

    科研百科 2023年1月5日
    196
  • 江苏省危险货物道路运输电子运单系统

    江苏省危险货物道路运输电子运单系统 随着社会经济的不断发展,危险货物的运输也日益增多。然而,危险货物的运输过程却面临着许多挑战,如安全漏洞、货物损坏等。为了解决这些问题,江苏省危险…

    科研百科 2024年10月31日
    3
  • 弘宇项目管理系统招聘

    弘宇项目管理系统招聘 随着现代项目管理的不断发展,弘宇项目管理系统正在招聘更多的人才。作为我们团队的核心,我们需要有优秀的项目管理技能和知识,以及强烈的责任感和团队合作精神。 弘宇…

    科研百科 2025年1月17日
    0
  • 项目管理成果

    项目管理成果 项目管理是指通过规划、执行和控制项目工作,以实现特定目标的的全过程。在现代商业环境中,项目管理已经成为一种至关重要的技能,对于公司的成功和利润都有着深远的影响。 在过…

    科研百科 2024年7月23日
    44
  • 今日心理学知识之「人际关系金字塔」(人际关系金字塔理论)

    你选择朋友的标准是什么呢? 你有多少是看重彼此关系的朋友呢? 今天我学习了【人际关系金字塔】 从塔顶到塔基依次如下: 【6看中与我关系的人】 【5尊重我的人】 【4对我友好的人】 …

    科研百科 2022年8月8日
    618
  • 项目文档管理没你想得那么简单(项目文档编写与管理)

    今天我们聊聊关于项目文档的那些事儿! 有人可能会说:项目文档管理有什么好讲的!一句话总结:不就是把项目文件分类上传么! 不不不!项目中的文档管理远没你想得那么简单!不信看下面两个场…

    2022年6月16日
    217
  • 一个科研项目中途退出

    一个科研项目中途退出 作为一个科研项目,中途退出是一种不可接受的行为。一个项目的成功需要团队中的每个人都做出贡献,包括研究人员、导师、实验室管理人员和其他团队成员。如果某个成员中途…

    科研百科 2024年10月28日
    0