天天看點

代碼生成 | 放開雙手,專注業務,一鍵生成項目基礎結構 + 重複代碼

作者:IT學習日記

前言

  「工欲善其事必先利其器,優秀者總是善于借助工具來提升自己的效率。」 作為一名開發者,項目架構設計完成後大部分的工作量就是項目架構搭建和表相關實體建立,「這部分工作技術含量不高卻需要耗費大量時間,有沒有辦法一鍵生成呢?」

  本篇文章将給大家推薦一個:一鍵生成表實體(包括controller,service,mapper等),以及一鍵生成項目基礎架構的開源項目-代碼生成腳手架。許多朋友會問,這不就是mybatis-plus自動生成代碼功能?「沒錯,實體結構生成功能是基于它,但是,比它擁有更多功能,還可以自定義。」

  「項目位址:」

  • Gitee:https://gitee.com/it-learning-diary/it-scaffold
  • Github: https://github.com/it-learning-diary/it-scaffold

  「一鍵生成項目基礎架構示範」

代碼生成 | 放開雙手,專注業務,一鍵生成項目基礎結構 + 重複代碼

  「一鍵生成表相關實體功能示範」

代碼生成 | 放開雙手,專注業務,一鍵生成項目基礎結構 + 重複代碼

  「使用一鍵生成工具不僅能夠提升開發效率,同時也能夠讓開發更加規範。」 當公司人員和項目逐漸增多時,如果沒有一個統一的規範,那麼每個人設計思想可能都不一樣,引入的第三方依賴,版本,項目層級等都可能不同,後續項目出現問題或者項目負責人離職,維護成本會非常昂貴。

  「使用一鍵生成工具則可以有效地防範這一類問題,由公司架構師統一制定項目的依賴、版本、項目層級等基礎資訊,使用者隻需要一鍵生成,然後在生成的層級中進行業務代碼的編寫即可。」

項目一鍵生成功能介紹

  「實作原理:」 項目的自動生成主要依賴于自定義模闆+freemarker模闆引擎,使用者可以根據實際情況自行定義項目的依賴和層級等基礎資訊,然後通過模闆引擎将資料渲染進去。

  「使用技術:」 freemarker

  「項目層級介紹:」 所有模闆都放在resources目錄下,可以根據自己的情況進行新增或者删除,需要替換資料的地方使用${占位符名稱},然後在請求參數中添加即可(注意:freemarker中如果占位符的值為null時,渲染模闆時會出現錯誤,是以一定要保證占位符的資料不能為null)。

代碼生成 | 放開雙手,專注業務,一鍵生成項目基礎結構 + 重複代碼

資料表實體一鍵生成功能介紹

  「實作原理:」 對mybatis-plus-generator進一層封裝,增加預設配置,使用者隻需要關注常用的配置即可。

  「使用技術:」 freemarker,mybatis-plus-generator

  「項目層級介紹:」 實體相關模闆都放在resources的tempalte目錄下,可以根據自己的情況進行新增或者删除,需要替換資料的地方使用${占位符名稱},然後在請求參數中添加即可(注意:freemarker中如果占位符的值為null時,渲染模闆時會出現錯誤,是以一定要保證占位符的資料不能為null)。

代碼生成 | 放開雙手,專注業務,一鍵生成項目基礎結構 + 重複代碼

結合使用

  最常見的使用是先建立項目基礎架構,然後再生成表實體相關資訊,并指定到項目路徑下,如下圖示範。

代碼生成 | 放開雙手,專注業務,一鍵生成項目基礎結構 + 重複代碼

寫在最後

  除了項目基礎結構生成和表實體相關結構生成,代碼腳手架後續還會考慮內建:表結構導出(html,word,pdf等方式),更多功能歡迎大家積極提供建議,「如果對大家有幫助,請給部落客一個Star。」

  「項目位址:」

  • Gitee:https://gitee.com/it-learning-diary/it-scaffold
  • Github: https://github.com/it-learning-diary/it-scaffold

  「相關推薦:」

  部落客之前也開源過一個內建了各種常用工具如csv、excel、ftp、檔案系統等等功能開源項目-輪子之王,「在Gitee+Github已收到近300Star,有興趣的讀者也可以點選下面連結進行檢視。」

  • 輪子之王內建功能詳細介紹:http://it-learning-diary.gitee.io/it-wheels-king-inline-doc/#/
  • Gitee位址:https://gitee.com/it-learning-diary/it-wheels-king
  • Github位址:https://github.com/it-learning-diary/it-wheels-king

繼續閱讀