SpringBoot版的低代碼開發(fā)平臺,關聯(lián)無 SQL,性能高10倍!
點擊上方“Java技術江湖”,選擇“設為星標”
回復”666“獲取全網(wǎng)最熱的Java核心知識點整理

來源:開源技術專欄
diboot 的設計理念
Web 開發(fā)需要一個普適的基礎框架,把復雜的問題簡單化,最好還能做到更佳性能,規(guī)避常見的坑
程序員很難被替代,但程序員應該聚焦于數(shù)據(jù)結構設計、業(yè)務實現(xiàn)、難點解決,重復 CRUD 沒啥長進
低代碼是未來的趨勢,CRUD 類重復有規(guī)律的工作是可以被自動化甚至被省掉的
diboot 主要技術棧
后端 Java + 關系數(shù)據(jù)庫,跟緊 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和常規(guī)關聯(lián)的功能實現(xiàn),代碼量比傳統(tǒng)Mybatis項目減少80%+,且性能更好更易維護。
diboot 基礎組件
1、 diboot-core: 精簡優(yōu)化內(nèi)核:寫的更少,性能更好
主要特性:
單表CRUD無SQL 關聯(lián)綁定無SQL(注解自動綁定) 數(shù)據(jù)字典無SQL(注解自動綁定) 跨表查詢無SQL(自動構建QueryWrapper與查詢) BaseService擴展增強,支持常規(guī)的單表及關聯(lián)開發(fā)場景接口 其他常用工具類、狀態(tài)碼、異常處理的更優(yōu)實踐封裝
基于diboot-core的CRUD和常規(guī)關聯(lián)的功能實現(xiàn),代碼量比傳統(tǒng)Mybatis項目減少80%+,且性能更好更易維護。
2、IAM 身份認證基礎組件 及 配套VUE前端框架(diboot-antd-admin、diboot-element-admin)
開箱即用的RBAC角色權限模型與預置組織人員崗位模型 基于無狀態(tài)token的認證授權,支持刷新token 簡化的BindPermission注解,支持兼容shiro的簡化權限配置與自動鑒權 自動提取需要鑒權的后端接口, 借助前端功能方便配置菜單按鈕權限 無縫適配redis,引入redis依賴即可啟用shiro的redis緩存 支持基于注解的數(shù)據(jù)權限實現(xiàn)、簡化的Log注解記錄操作日志等 支持靈活的擴展能力(擴展多種登錄方式、靈活替換用戶實體類、自定義緩存等)
3、diboot-file 文件相關處理組件
EasyExcel輕量封裝,支持Java注解校驗與 @ExcelBind*注解實現(xiàn)字典及關聯(lián)字段的name-value轉換,并提供完善的校驗錯誤提示文件存儲接口化,預置本地存儲,簡單擴展OSS、分布式存儲等實現(xiàn) 封裝常用的文件上傳下載、圖片壓縮水印等常用處理
4、diboot-scheduler 定時任務組件
Quartz定時任務統(tǒng)一管理及日志的最佳實踐封裝 @CollectThisJob注解提供定時任務定義,自動收集供前端選擇
5、diboot-message 消息通知組件
通用的消息模板&模板變量的設計方案 支持多通道的消息通知發(fā)送
6、diboot-mobile 移動端組件
提供了配套的 diboot-mobile-ui,內(nèi)置了多種登錄方式支持 賬號密碼登錄、微信小程序登錄(自動注冊)微信公眾號登錄(自動注冊)
diboot-core (diboot-core-starter) 使用步驟
引入依賴
<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}")
配置參數(shù)(數(shù)據(jù)源)
#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的可選參數(shù)配置:
# 是否初始化sql,默認true,初始化之后(或非開發(fā)環(huán)境)可以改為false關閉檢測
diboot.core.init-sql=false
配置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預置了默認的配置以及字典表相關的接口實現(xiàn),如果是老項目中僅依賴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

準備數(shù)據(jù)庫后使用 devtools 初始化代碼
1、點擊控制臺中打印出的 URL,進入devtools操作頁面。(個人用戶初次使用需要掃碼)
2、初次啟動 devtools 會提示初始化組件的基礎代碼(為了方便自定義修改,devtools 將controller 等代碼生成到本地項目中)。依次點擊各組件的"生成代碼"按鈕。

3、打開 demo 目錄下的 java 目錄,將會看到相關組件的初始化代碼已生成。
注意:如果啟動前端發(fā)現(xiàn)驗證碼無法顯示,則需要檢查是否執(zhí)行了這個步驟并重啟了項目。登錄驗證相關的 controller 需要此步驟中生成
開源地址:
https://gitee.com/dibo_software/diboot
Spring Boot 3 步完成日志脫敏,簡單實用~
SpringBoot+Prometheus+Grafana 實現(xiàn)自定義監(jiān)控
學會 Arthas,讓你 3 年經(jīng)驗掌握 5 年功力!
關注公眾號【Java技術江湖】后回復“PDF”即可領取200+頁的《Java工程師面試指南》
強烈推薦,幾乎涵蓋所有Java工程師必知必會的知識點,不管是復習還是面試,都很實用。




