SpringBoot版的低代码开发平台,关联无 SQL - 第462篇
创始人
2024-05-29 13:06:07
0

历史文章(文章累计450+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

(我阳了)SpringBoot3正式版于11月24日发布:都有哪些新特性?- 第456篇

SpringBoot3初体验 - 第457篇

定一个小目标,先赚他1个亿(ChatGPT可能要替代你的工作了)

我也来玩一玩OpenAI ChatGPT,人工智能时代终究会来临 - 第459篇

SpringBoot使用ChatGPT Api开发一个聊天机器人 - 第460篇

Idea启动多个SpringBoot项目的3种方案

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

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

diboot设计目标: 为开发人员打造的低代码开发平台,将复杂的工作简单化、重复的工作自动化,提高质量、效率、可维护性。

用上diboot,告别常规SQL和CRUD,写的更少,性能更好!

一、diboot说明书

1.1 相关资料

diboot源代码:

https://gitee.com/dibo_software/diboot

体验diboot的demo示例:

https://www.diboot.com/guide/beginner/bootstrap.html#_1-克隆playground项目

diboot 系列视频教程

https://www.diboot.com/guide/beginner/video.html#视频教程介绍预览

体验地址:

http://demo.diboot.com/dashboard/index

1.2 版本说明

截止到2023年3月3日的版本信息:

(1)源代码使用Spring Boot版本:2.7.8

(2)Node推荐版本:node版本选择v14.x,以避免兼容性问题

二、diboot介绍

2.1 diboot是什么?

2.2诞生背景

当行业步入成本高、人才缺、效率低的阶段,必然带来的一个变革就是自动化,IT行业也不例外。这也是低代码/无代码这个概念近几年被引爆的原因。面对群魔乱舞的无代码们,我们也曾动摇过:那些给业务人员用的无代码会是软件开发的未来吗?程序员会被取代吗?

当我们深入使用了某些无代码平台后,我们坚定了自己的判断:程序员是不可替代的,无代码是个高度场景预设的产物。信息化已经过了普及阶段,用户对软件的要求越来越高,需求也越来越复杂。诚然你可以用无代码实现大部分简单需求,但对于剩下的复杂需求,你需要付出数倍于传统开发的代价才能勉强实现。

不可取代并不代表可以高枕无忧,传统的开发框架复杂繁琐,开发和维护都很难提效,低代码时代需要一个新的框架体系来给开发人员赋能。这就是Diboot诞生的使命,她介于pro-code与low-code之间,赋能开发者,实现开发过程的提质提效。

2.3设计理念

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

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

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

2.4使用场景

推荐使用姿势:

l无历史包袱的新项目:推荐使用diboot整套解决方案(基础框架+工具)

n单体应用简单业务场景: spring boot 版本 + devtools

n微服务复杂业务场景: spring cloud 版 + devtools

n工作流业务场景: diboot-workflow 工作流 + devtools

lmybatis-plus老项目改造

n只集成diboot-core,使用关联数据绑定等核心能力(不使用diboot的字典表及字典绑定)

n或只集成diboot-core-starter,使用关联数据绑定等核心能力(及diboot的字典表及字典绑定)

lmybatis老项目

n不建议改造了,继续维护吧

2.4 diboot体系架构图

2.5 core内核简介

高效精简内核,重构查询方式,简化开发、提高性能,主要特性:

1)单表CRUD无SQL

2)关联数据绑定无SQL(注解自动绑定)

3)关联字典无SQL(注解自动绑定)

4)查询条件构建无SQL(查询条件自动构建)

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

6)数据范围权限、工具类的最佳实践封装

三、体验diboot

官网提供了一个案例playground,代码仓库:

https://gitee.com/dibo_software/playground

3.1 下载代码

将仓库上的的代码进行下载到本地,然后导入到idea开发工具:

项目代码说明:

(1)demo项目为PC端后端rest接口示例,mobile-demo项目为移动端后端rest接口示例。

(2)后端项目启动后从控制台链接进入devtools后需先生成diboot组件的基础代码

如启动前端出现无法显示验证码,检查是否生成了各组件的基础代码并重启了demo项目

(3)diboot-antd-admin 和 diboot-element-admin 为两个前端项目,实际体验中根据个人习惯选择一个即可

注: 默认devtools生成的前端路径指向antd,如果选择element,则需修改application-dev.properties中的diboot.devtools.output-path-frontend参数指向element。

3.2 修改数据源

修改application-dev.properties的数据源配置:

项目代码说明:

(1)demo项目为PC端后端rest接口示例,mobile-demo项目为移动端后端rest接口示例。

(2)后端项目启动后从控制台链接进入devtools后需先生成diboot组件的基础代码

如启动前端出现无法显示验证码,检查是否生成了各组件的基础代码并重启了demo项目

(3)diboot-antd-admin 和 diboot-element-admin 为两个前端项目,实际体验中根据个人习惯选择一个即可

注: 默认devtools生成的前端路径指向antd,如果选择element,则需修改application-dev.properties中的diboot.devtools.output-path-frontend参数指向element。

3.2 修改数据源

修改application-dev.properties的数据源配置:

#datasource configspring.datasource.url=jdbc:mysql://localhost:3306/playground?characterEncoding=utf8&serverTimezone=GMT%2B8spring.datasource.username=rootspring.datasource.password=rootspring.datasource.hikari.maximum-pool-size=5spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver

对应本地的数据库账号和密码,另外手动创建一个数据库playground。

3.3 启动应用

启动应用,成功的话,可以看到自动创建的表信息:

3.5 启动前端

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

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

# yarn(推荐)yarn installyarn run serve# 或者 npmnpm installnpm run serve

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

http://localhost:9528/#/login?redirect=%2Fdashboard

体验地址:

http://demo.diboot.com/dashboard/index

四、项目中使用biboot

在项目中如何使用biboot呢 ?

4.1 添加依赖

首先在pom.xml文件中添加依赖:

    com.diboot    diboot-core-spring-boot-starter    {latestVersion}

4.2配置参数(数据源)

以Mysql为例,配置数据源如下:

#datasource configspring.datasource.url=jdbc:mysql://localhost:3306/diboot_example?characterEncoding=utf8&serverTimezone=GMT%2B8spring.datasource.username=dibootspring.datasource.password=123456spring.datasource.hikari.maximum-pool-size=5spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver

注:@BindDict注解需要依赖dictionary表,diboot-core starter 初次启动时会自动创建该表。

diboot-core-spring-boot-starter的可选参数配置:

# 是否初始化sql,默认true,初始化之后(或非开发环境)可以改为false关闭检测diboot.core.init-sql=false

4.3配置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;}

4.4 基础封装-Mapper

Mapper类需要继承diboot-core中的BaseCrudMapper基础类,并传入相对应的实体类,如:

import com.diboot.core.mapper.BaseCrudMapper;import org.apache.ibatis.annotations.Mapper;@Mapperpublic interface DemoMapper extends BaseCrudMapper {}

对于BaseCrudMapper好像有特殊的,继承了MyBatis-Plus的BaseMapper:

4.5 基础封装-Service

对于entity对应的service,推荐继承diboot-core中封装好的BaseService接口及BaseServiceImpl实现,以使用diboot针对关联等场景的增强扩展接口。

import com.diboot.core.service.BaseService;public interface DemoService extends BaseService {}

BaseService类具备mybatis-plus中的IService接口大多数接口,但并没有继承IService,如果需要使用IService接口,可单独继承IService类.

总结

diboot集成了很多常规的功能,是很强大,但要使用的话,是要研究官网的API文档的,不然实际项目使用中肯定会采坑的。

相关内容

热门资讯

借用合同 借用合同范本  随着法治精神地不断发扬,人们愈发重视合同,合同起到的作用越来越大,合同是企业发展中一...
摊位租赁合同样本 摊位租赁合同样本  在进行摊位的租赁时,需要签订相关的合同,那么关于摊位租赁的合同应该如何签订呢?下...
购销合同书样本格式 购销合同书样本格式  一、购销合同注意事项  购销合同是买卖合同的变化形式,它同买卖合同的要求基本上...
钢结构工程施工合同 钢结构工程施工合同(通用10篇)  钢结构工程施工合同的签订是为了为了明确双方的相互权利、义务关系。...
房屋买卖合同 房屋买卖合同范本15篇  在人们的法律意识不断增强的社会,越来越多事情需要用到合同,合同协调着人与人...
户外大型广告牌的拆除施工合同 户外大型广告牌的拆除施工合同户外大型广告牌的拆除施工合同正文:户外大型广告牌的拆除施工合同甲方:**...
民间借款合同 民间借款合同范本  2015民间借款合同范本  特别提示:  请认真阅读本合同项下的全部条款,对于不...
公司向股东个人借款合同范本 公司向股东个人借款合同范本  公司向股东个人借款合同范本(精选20篇)  在当今不断发展的世界,越来...
续签劳动合同 关于续签劳动合同范本  现今社会公众的法律意识不断增强,随时随地,各种场景都有可能使用到合同,签订合...
婚纱影楼加盟合同 婚纱影楼加盟合同范本  V2视觉婚纱摄影特许加盟合同范本  甲方(特许方):____________...
域名转让合同 域名转让合同(通用6篇)  现今社会公众的法律意识不断增强,我们用到合同的地方越来越多,合同协调着人...
合作开发合同8点注意事项 合作开发合同8点注意事项  什么是合作开发  合作开发,是以合作各方共同参与为前提,《合同法》第三百...
公益赠与合同怎么撤销 公益赠与合同怎么撤销  社会公益的赠与合同能撤销吗  河北某希望小学地处偏僻山村,师资等条件十分艰苦...
网签合同 网签合同(精选12篇)  随着法律观念的深入人心,合同出现在我们生活中的次数越来越多,签订合同也是非...
建筑材料供货合同 建筑材料供货合同  甲方(需方):_________________________________...
合作合同 合作合同范本  合作合同范本(1)  甲方:  乙方:  甲乙双方本着诚信、平等、互惠的原则,经过友...
买卖合同 【精华】买卖合同集合  随着法律法规不断完善,人们越发重视合同,合同对我们的帮助越来越大,它也是实现...
货物运输合同 货物运输合同范本15篇  随着法律法规不断完善,人们越发重视合同,越来越多事情需要用到合同,合同是企...