<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>

          讓人上癮的新一代開發(fā)神器,徹底告別Controller、Service、Dao等方法

          共 3050字,需瀏覽 7分鐘

           ·

          2022-06-06 18:52

          往期熱門文章:

          1、SpringBoot 啟動時自動執(zhí)行代碼的幾種方式,還有誰不會??

          2、勁爆!Java 通用泛型要來了。。

          3、如何寫出讓同事吐血的代碼?

          4、遭棄用的 Docker Desktop 放大招!宣布支持 Linux

          5、IDEA公司再發(fā)新神器!超越 VS Code 騷操作!

          來源:https://c1n.cn/OHt1w


          初衷


          用盡可能簡單的方式,完成盡可能多的需求。通過約定的方式實(shí)現(xiàn)統(tǒng)一的標(biāo)準(zhǔn)。告別加班,拒絕重復(fù)勞動,遠(yuǎn)離搬磚。


          特性


          如下:

          • 用于快速開發(fā) API 接口。不再定義 Controller,Service,Dao,Mybatis,xml,Entity,VO 等對象和方法。

          • 可視化界面,將入?yún)⒆詣臃庋b到可執(zhí)行的腳本上,支持所有關(guān)系性數(shù)據(jù)庫 SQL 執(zhí)行語句,非關(guān)系型 MONGODB 查詢語句,歡迎擴(kuò)展。

          • 完全基于 springboot2.x 作為 springboot 項(xiàng)目的 stater 方式集成,無侵入性,新老項(xiàng)目都能快速集成。

          • 只需編寫一行代碼即可完成大部分的業(yè)務(wù)需求開發(fā),使用難度級別(測試 or 運(yùn)維)也可參與開發(fā)。

          • 在線動態(tài)編譯,無需重啟,即時生效,多數(shù)據(jù)源操作。

          • 版本控制,歷史記錄比對,回滾等功能。

          • 遠(yuǎn)程一鍵發(fā)布到線上環(huán)境。

          • 線上 POSTMAN 調(diào)試,保存 POSTMAN 信息或三方文檔的自動生成,歷史調(diào)用記錄存儲,回塑。

          • 代碼提示,SQL 提示,語法提示。

          • 用戶管理控制,安全性控制,以及歷史行為記錄。

          • 經(jīng)過多次項(xiàng)目驗(yàn)證,傳統(tǒng)業(yè)務(wù)型開發(fā),服務(wù)端效率能夠提升 3-5 倍,前后端聯(lián)調(diào)提升效率 1 倍,測試效率 2 倍提升。


          傳統(tǒng)開發(fā)步驟


          如下:

          • 增加一張表

          • 創(chuàng)建實(shí)體對象,映射這張表

          • 創(chuàng)建 API 入?yún)?VO

          • 創(chuàng)建 API 出參 VO

          • 創(chuàng)建 Controller

          • 創(chuàng)建 Service

          • 創(chuàng)建 Dao

          • 創(chuàng)建 Mapper,xml 或者 JPA

          • 在 mysql 客戶端,或者 mongo 客戶端中寫執(zhí)行腳本語句,復(fù)制到代碼中

          • 反復(fù)重啟,進(jìn)行接口自測

          • 編寫 API 文檔

          • 完成一個功能點(diǎn)開發(fā)


          使用一些工具比如 mybatis plus,jpa 或者 idea 的 Easy code、MybatisCodeHelperPro 等可以一鍵生成一些基于單表的操作的相關(guān)代碼。


          但是業(yè)務(wù)場景來說,可能喜歡更靈活,代碼執(zhí)行效率更高的一些操作方式,并且一個項(xiàng)目開發(fā)中,從來不僅僅是單表的一些操作操作。


          市面上就上面的這些問題,提供了 APIJSON 和 GraphQL 等解決方案,這兩個工具相對操作數(shù)據(jù)庫相對很靈活,但是操作難度,和學(xué)習(xí)成本高,并且適合場景也是有限,如果要實(shí)現(xiàn)簡單的業(yè)務(wù)處理邏輯會比較復(fù)雜。


          那么,我希望有一種功具,它可以像 mybatis xml,像 metabase BI,一樣,能夠直接操作原生的數(shù)據(jù)庫查詢及操作語句。


          并且可以有 springboot 的 restful 這種業(yè)界標(biāo)準(zhǔn)的接口定義/及參數(shù)定義方式,并且按照統(tǒng)一約定的方式,省略三層 MVC 的定義,并且能夠?qū)?shù)據(jù)進(jìn)行一些邏輯處理,以滿足多元化的業(yè)務(wù)需求。


          最好是作為一個插件的形式,能夠很好的集成在現(xiàn)有項(xiàng)目中,不會影響到現(xiàn)有的業(yè)務(wù)邏輯處理。


          這就是我要介紹的一款工具 Rocket API:

          https://gitee.com/alenfive/rocket-api-doc/wikis/pages


          區(qū)別于前兩類的設(shè)計(jì)方式不同點(diǎn)在于:


          基于 springboot 開發(fā)。包括接口的注冊,參數(shù)的獲取,輸入輸出的消息轉(zhuǎn)換,都是基于 springboot 的生態(tài)環(huán)境,能無侵入性集成于 springboot 項(xiàng)目中。


          如果你有基于 springboot 實(shí)現(xiàn)了全局異常處理,返回值統(tǒng)一封裝,權(quán)限控制等,不用擔(dān)心,都在你的管控范圍內(nèi)。


          參考于 mybatis 的參數(shù)定義方式,不同點(diǎn)在于使用默認(rèn)大于配置的邏輯,實(shí)現(xiàn)參數(shù)的注入直接來源于請求參數(shù),省略了傳統(tǒng) MVC 實(shí)體類,方法,VO 等定義。


          默認(rèn)擔(dān)供了內(nèi)部函數(shù),可以很簡單的實(shí)現(xiàn) 多表/多庫的增/刪/改/查,導(dǎo)出,導(dǎo)入,上傳,下載,分頁查詢等功能。


          提供了基于 Groovy 的語法解析,可以實(shí)現(xiàn) Groovy 的一些邏輯處理。


          提供了調(diào)用 springboot bean 對象的方法及其他任意 java 定義的靜態(tài)類,方法和對象,這意味著我能夠調(diào)用公共定義的類,或者之前在項(xiàng)目中定義的 service,dao 和 utils。


          因?yàn)榛诘?groovy 動態(tài)語法解析,所以代碼修改,或者線上問題的處理能夠不用重啟服務(wù),也不用升級代碼就能夠完成功能開發(fā)和問題處理,這對開發(fā)效率而言會有很大的提升。


          傳統(tǒng)業(yè)務(wù)開發(fā),不僅有服務(wù)端的開發(fā),還有相對應(yīng)的文檔生成,前后端對接,以及測試配合。


          “Rocket API” 提供了 POSTMAN 的操作頁面,能夠?qū)?shù)的請求值,請求類型,響應(yīng)等保存起來,給予前端做真實(shí)數(shù)據(jù)的對接,而不是類 yapi,或者 swagger 之類生成的不能使用的假數(shù)據(jù)。


          基于這些真實(shí)的請求參數(shù)和返回值,提供了外部接口能力,測試團(tuán)隊(duì)可以以此來做接口的一鍵冒煙測試和文檔的一鍵生成。


          演示說明


          接口功能邏輯頁面:

          接口功能自測頁面:

          文檔和演示地址:

          https://gitee.com/alenfive/rocket-api-doc/wikis/pages

          集成方式:


          ①添加依賴:

          <dependency>??
          ????<groupId>com.github.alenfivegroupId>??
          ????<artifactId>rocket-api-boot-starterartifactId>??
          ????<version>0.0.1-SNAPSHOTversion>??
          dependency>??


          ②數(shù)據(jù)源配置:

          @Component??
          public?class?DefaultDataSourceManager?extends?DataSourceManager?{??

          ????@Autowired??
          ????private?JdbcTemplate?jdbcTemplate;??

          ????@PostConstruct??
          ????public?void?init()?{??
          ????????Map?dialects?=?new?HashMap<>();??
          ????????dialects.put("mysql",new?SqlDataSource(jdbcTemplate,true));??
          ????????super.setDialectMap(dialects);??
          ????}??
          }??


          ③最新建表腳本查看:

          https://gitee.com/mihuajun/rocket-api-doc/wikis/pages?sort_id=2670007&doc_id=859283?


          啟動項(xiàng)目,訪問地址:

          http://localhost:8080/interface-ui

          最近熱文閱讀:

          1、SpringBoot 啟動時自動執(zhí)行代碼的幾種方式,還有誰不會??
          2、如何寫出讓同事吐血的代碼?
          3、遭棄用的 Docker Desktop 放大招!宣布支持 Linux
          4、IDEA公司再發(fā)新神器!超越 VS Code 騷操作!
          5、推薦好用 Spring Boot 內(nèi)置工具類
          6、五個刁鉆的String面試問題及解答
          7、IntelliJ平臺將完全停止使用Log4j
          8、神操作!我把 3000 行代碼重構(gòu)成 15 行!
          9、我用Java幾分鐘處理完30億個數(shù)據(jù)...
          10、一款自動生成單元測試的 IDEA 插件
          關(guān)注公眾號,你想要的Java都在這里

          瀏覽 41
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  99亚洲婷婷伊人五月天久久欧美 | 日本亚洲女人在线视频 | 国产美女精品 | 欧美在线日韩 | 操逼在线网站观看 |