<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringBoot版的低代碼開發(fā)平臺(tái),關(guān)聯(lián)無 SQL,性能高10倍!

          共 6142字,需瀏覽 13分鐘

           ·

          2023-01-01 01:40

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨 及時(shí)送達(dá) ??

          27515ad2a5d40d0c6d4c6590a20ad05b.webp

          來源:開源技術(shù)專欄


          diboot 的設(shè)計(jì)理念

          Web 開發(fā)需要一個(gè)普適的基礎(chǔ)框架,把復(fù)雜的問題簡(jiǎn)單化,最好還能做到更佳性能,規(guī)避常見的坑

          程序員很難被替代,但程序員應(yīng)該聚焦于數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、業(yè)務(wù)實(shí)現(xiàn)、難點(diǎn)解決,重復(fù) CRUD 沒啥長(zhǎng)進(jìn)

          低代碼是未來的趨勢(shì),CRUD 類重復(fù)有規(guī)律的工作是可以被自動(dòng)化甚至被省掉的

          diboot 主要技術(shù)棧

          • 后端 Java + 關(guān)系數(shù)據(jù)庫(kù),跟緊 Spring 體系 (Spring Boot、Spring Cloud)
          • ORM 站隊(duì) Mybatis,通用 Mappe r框架選用 Mybatis-plus
          • 權(quán)限: spring boo 版本使用 Shiro+JWT;spring cloud 版本使用 spring security + oauth2
          • 前后分離,前端選型 Vue,支持 ElementUI 和 Antd vue pro

          基于diboot-core的CRUD和常規(guī)關(guān)聯(lián)的功能實(shí)現(xiàn),代碼量比傳統(tǒng)Mybatis項(xiàng)目減少80%+,且性能更好更易維護(hù)。

          diboot 基礎(chǔ)組件

          1、 diboot-core: 精簡(jiǎn)優(yōu)化內(nèi)核:寫的更少,性能更好

          主要特性:

          • 單表CRUD無SQL
          • 關(guān)聯(lián)綁定無SQL(注解自動(dòng)綁定)
          • 數(shù)據(jù)字典無SQL(注解自動(dòng)綁定)
          • 跨表查詢無SQL(自動(dòng)構(gòu)建QueryWrapper與查詢)
          • BaseService擴(kuò)展增強(qiáng),支持常規(guī)的單表及關(guān)聯(lián)開發(fā)場(chǎng)景接口
          • 其他常用工具類、狀態(tài)碼、異常處理的更優(yōu)實(shí)踐封裝

          基于diboot-core的CRUD和常規(guī)關(guān)聯(lián)的功能實(shí)現(xiàn),代碼量比傳統(tǒng)Mybatis項(xiàng)目減少80%+,且性能更好更易維護(hù)。

          2、IAM 身份認(rèn)證基礎(chǔ)組件 及 配套VUE前端框架(diboot-antd-admin、diboot-element-admin)

          • 開箱即用的RBAC角色權(quán)限模型與預(yù)置組織人員崗位模型
          • 基于無狀態(tài)token的認(rèn)證授權(quán),支持刷新token
          • 簡(jiǎn)化的BindPermission注解,支持兼容shiro的簡(jiǎn)化權(quán)限配置與自動(dòng)鑒權(quán)
          • 自動(dòng)提取需要鑒權(quán)的后端接口, 借助前端功能方便配置菜單按鈕權(quán)限
          • 無縫適配redis,引入redis依賴即可啟用shiro的redis緩存
          • 支持基于注解的數(shù)據(jù)權(quán)限實(shí)現(xiàn)、簡(jiǎn)化的Log注解記錄操作日志等
          • 支持靈活的擴(kuò)展能力(擴(kuò)展多種登錄方式、靈活替換用戶實(shí)體類、自定義緩存等)

          3、diboot-file 文件相關(guān)處理組件

          • EasyExcel輕量封裝,支持Java注解校驗(yàn)與@ExcelBind*注解實(shí)現(xiàn)字典及關(guān)聯(lián)字段的name-value轉(zhuǎn)換,并提供完善的校驗(yàn)錯(cuò)誤提示
          • 文件存儲(chǔ)接口化,預(yù)置本地存儲(chǔ),簡(jiǎn)單擴(kuò)展OSS、分布式存儲(chǔ)等實(shí)現(xiàn)
          • 封裝常用的文件上傳下載、圖片壓縮水印等常用處理

          4、diboot-scheduler 定時(shí)任務(wù)組件

          • Quartz定時(shí)任務(wù)統(tǒng)一管理及日志的最佳實(shí)踐封裝
          • @CollectThisJob注解提供定時(shí)任務(wù)定義,自動(dòng)收集供前端選擇

          5、diboot-message 消息通知組件

          • 通用的消息模板&模板變量的設(shè)計(jì)方案
          • 支持多通道的消息通知發(fā)送

          6、diboot-mobile 移動(dòng)端組件

          • 提供了配套的 diboot-mobile-ui ,內(nèi)置了多種登錄方式
          • 支持 賬號(hào)密碼登錄、微信小程序登錄(自動(dòng)注冊(cè))微信公眾號(hào)登錄(自動(dòng)注冊(cè))

          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. 配置參數(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,默認(rèn)true,初始化之后(或非開發(fā)環(huán)境)可以改為false關(guān)閉檢測(cè)
          diboot.core.init-sql=false
          1. 配置config類

          diboot-core-starter 默認(rèn)預(yù)置了 mybatis-plus 的分頁(yè)配置(使用 mybatis-plus 3.4.x的 MybatisPlusInterceptor 最新配置方式)。如果您依賴的是core-starter,則無需再次配置 mybatis-plus 的分頁(yè)。

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

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

          //同時(shí)core-starter中也默認(rèn)配置了HttpMessageConverters,如果需要更改默認(rèn)配置,?則需要在配置類中重新定義HttpMessageConverters。
          @Bean
          public?HttpMessageConverters?jacksonHttpMessageConverters()?{
          ????...
          }

          注意:diboot-core-starter 預(yù)置了默認(rèn)的配置以及字典表相關(guān)的接口實(shí)現(xiàn),如果是老項(xiàng)目中僅依賴 diboot-core(非diboot-core-starter),則還需要將 diboot 的包路徑加入 ComponentScan 中

          diboot 新手體驗(yàn)

          在 IDE 中克隆 playground 項(xiàng)目

          "File -> New -> Project from version control..."菜單打開克隆項(xiàng)目對(duì)話框:

          1996a956d9e2226c0466e9cad46a197f.webp

          圖片

          URL 中輸入如下 playground 項(xiàng)目路徑,指定項(xiàng)目本地路徑(避免中文路徑),點(diǎn)擊 Clone 按鈕 :https://gitee.com/dibo_software/playground.git

          41e9489ecda32c2a887b040d976bd894.webp

          圖片

          待克隆完成后,在右側(cè) Maven 視圖中,添加 demo 項(xiàng)目下的 pom.xml

          250ec30efd1a38eb545b0e6694bcd401.webp

          圖片

          準(zhǔn)備數(shù)據(jù)庫(kù)后使用 devtools 初始化代碼

          1、點(diǎn)擊控制臺(tái)中打印出的 URL,進(jìn)入devtools操作頁(yè)面。(個(gè)人用戶初次使用需要掃碼)

          2、初次啟動(dòng) devtools 會(huì)提示初始化組件的基礎(chǔ)代碼(為了方便自定義修改,devtools 將controller 等代碼生成到本地項(xiàng)目中)。依次點(diǎn)擊各組件的"生成代碼"按鈕。

          4328da522d6f91483741af756cc151f2.webp

          圖片

          3、打開 demo 目錄下的 java 目錄,將會(huì)看到相關(guān)組件的初始化代碼已生成。

          注意:如果啟動(dòng)前端發(fā)現(xiàn)驗(yàn)證碼無法顯示,則需要檢查是否執(zhí)行了這個(gè)步驟并重啟了項(xiàng)目。登錄驗(yàn)證相關(guān)的 controller 需要此步驟中生成

          開源地址:

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

          1.?8種專坑同事的 SQL 寫法,性能降低100倍,不來看看?

          2.?SpringBoot 過濾器、攔截器、監(jiān)聽器對(duì)比及使用場(chǎng)景

          3.?面試官:海量請(qǐng)求下的接口并發(fā)解決方案,具體聊聊吧

          4.?10分鐘快速構(gòu)建一套自己的虛擬開發(fā)環(huán)境,Vagrant 堪稱效率神器!

                                  

          最近面試BAT,整理一份面試資料 Java面試BATJ通關(guān)手冊(cè) ,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點(diǎn)“ 在看 ”,關(guān)注公眾號(hào)并回復(fù)? Java ?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

                                  

          PS:因公眾號(hào)平臺(tái)更改了推送規(guī)則,如果不想錯(cuò)過內(nèi)容,記得讀完點(diǎn)一下 在看 ,加個(gè) 星標(biāo) ,這樣每次新文章推送才會(huì)第一時(shí)間出現(xiàn)在你的訂閱列表里。

          點(diǎn)“在看”支持小哈呀,謝謝啦

          瀏覽 43
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码蜜桃 吴梦梦 | 手机在线观看日韩 | 老司机久久一区二区三区 | 3p两根一起进女学生 | 日韩午夜在线观看 |