強推一個基于SpringCloudAlibaba的代碼生成器(spring 代碼生成器)
簡介
該團隊經過多年大型企業(yè)中臺化改造項目的沉淀,不斷總結經驗教訓,不斷努力提升產能,不斷積極應對微服務改造過程中出現的分分合合。經歷無數日夜的持續(xù)迭代和優(yōu)化,終于可以實現生成 70% 的適用于微服務架構的高質量范式化工程級代碼。此后,我們就很少加班,熱愛工作,并與領導成為了戰(zhàn)友,與客戶成為了朋友。
代碼生成器
如果說基礎框架是技術輪子,那么我們就是生產線。不僅可以造出各種尺寸的輪子,通過我們的在線配置工具,還能生成您的更多業(yè)務所需,如:
- 創(chuàng)建多個數據庫鏈接,并從中導入數據表。
- 創(chuàng)建多個微服務,再關聯到一到多個數據庫鏈接。
- 數據表之間可建立服務內和跨服務的“一對一、一對多、多對多、字典和分組聚合計算”等關聯關系。
- 生成 Job 業(yè)務代碼,目前已支持“全量同步、增量同步、增量分組聚合轉換同步”等代碼模板。
- 創(chuàng)建表單并對接后臺接口,操作并顯示后臺數據。
在創(chuàng)建項目時,下圖所示的微服務組件可正交化組合。生成后的工程不僅可用于企業(yè)中臺化改造,同樣也適用于開發(fā)者進行微服務全技術棧的快速學習。
在線資源
覺得不錯可以轉發(fā) 關注支持一下,私信我【代碼生成器】即可
- 網站首頁。
- 教學視頻。
- 生成器操作指南。
- 后端代碼文檔。
- 前端代碼文檔。
- 更完整的演示項目。
主要功能
- 提供前后端主流技術棧組件,可按需選擇生成您的工程基礎架構。
- 可創(chuàng)建多數據庫、多應用服務,并導入業(yè)務數據表,配置服務內或跨服務的復雜表關系。
- 前端支持基于 Fragment 和 Block 的嵌套布局,配置后即可生成多樣化的表單頁面,并可預覽。
- 操作權限和數據權限,靈活可配、運行時性能高度優(yōu)化。
- 有別于其他產品,我們不僅提供了Job框架的集成,更能生成任務處理器的業(yè)務邏輯代碼。
- 微服務和單體服務的接口命名規(guī)則和參數定義完全一致,便于您今后的平滑升級。
競爭優(yōu)勢
- 排在首位的就是15萬字以上的專業(yè)、詳盡、完善和暗黑護眼的操作指南、開發(fā)文檔和教學視頻。
- 真正的代碼生成器,而非腳手架,可生成相對復雜的中臺化業(yè)務代碼。
- 淺顯易懂的高質量生成后工程代碼,經過SonarQube和Alibaba代碼規(guī)范的嚴格掃描。
- 合理、全網超低價的教學版和企業(yè)版商業(yè)授權。(請我們擼一次串的價格)
開箱即用
項目信息如您所愿,工程名稱、目錄結構、基礎包名、common模塊、代碼注釋中的@author信息等,在創(chuàng)建工程時即已配置,不會留有橙單的任何信息。因此無需二次修改,前后端直接編譯運行即可。如編譯器和運行時出現問題,那一定是我們的bug,在得到您反饋后,我們將及時修復。
技術選型
覺得不錯可以轉發(fā) 關注支持一下,私信我【代碼生成器】即可
- 前端: Element (Vue) / Ant Design (React) ECharts / AntV Axios Webpack。
- 后端: Spring Boot / Spring Cloud / Spring Cloud Alibaba Spring Security OAuth2 Mybatis Jwt。
- 工具庫: Hutool Guava Caffeine Lombok MapStruct 通用Mapper。
- 服務組件: Redis Zookeeper Consul Apollo XXL-Job Kafka Nacos Sentinel Seata Nepxion Discovery。
- 系統(tǒng)監(jiān)控: ELK PinPoint / SkyWalking Grafana Prometheus。
基礎功能
- 前端框架:單頁面、多標簽、多欄目和子路由,多套高顏值樣式模式可供選擇。
- 前端能力:列表編輯、統(tǒng)計圖表、明細數據下載、上傳下載、數據導出、自定義打印樣式模板、富文本等。
- 頁面布局:支持基于 Fragment 和 Block 的靈活布局方式,通過配置即可生成多樣化的表單頁面,并可預覽。
- 接口規(guī)范:微服務和單體服務的接口命名規(guī)則和參數定義完全一致,便于日后的平滑升級。
- 后臺架構:分布式鎖、分布式 Id 生成器、分布式緩存、分布式事務、分布式限流和灰度發(fā)布等,按需集成。
- 用戶管理:支持基于OAuth2的單點登錄。
- 操作權限:前端控制可精確到按鈕級的操作和標簽級的顯示,后臺統(tǒng)一攔截驗證更加安全。
- 數據權限:基于 Mybatis 攔截器 JSQLParser 的實現方式,配置更靈活,代碼侵入性更低。
- 多數據源:可根據配置動態(tài)生成,路由策略靈活可擴展。
- 數據組裝:Java 注解方式實現數據組裝,支持統(tǒng)一接口的服務內和跨服務的一對一、一對多、多對多、字典、聚合計算等關系數據組合。
- 定時任務:我們不僅提供了 Job 基礎框架的集成,更能生成靈活可配、高度優(yōu)化、便于二次開發(fā)的 Job 業(yè)務邏輯代碼。
- 系統(tǒng)監(jiān)控:基于 Kafka ELK 的日志收集,基于 PinPoint/SkyWalking 的服務鏈路跟蹤,基于 GPE 的服務性能指標監(jiān)控。
設計理念
- 前沿的單表組合式設計,使業(yè)務服務的拆分與再合并 SO EASY。
- 先代碼,后SQL的原則,讓服務橫向擴充更具彈性。
- 標準化的服務間調用接口,使業(yè)務服務組合更具正交性。
- 前后端基于約定各司其職,默契配合,讓系統(tǒng)運行飛起來。
- 可平滑的逐步演化為云原生架構。
代碼質量
- 無任何二次封裝,只生成您最懂的代碼。
- 遵循阿里巴巴標準的代碼規(guī)范。
- SonarQube 基于最嚴格檢測規(guī)則的代碼掃描。
- 產品級代碼質量,層次清晰、滴水不漏。
- 近乎于0的代碼重復率,35%以上的注釋覆蓋率。
- 15年架構師優(yōu)化的每一處細節(jié)。
規(guī)則掃描
此為在線演示工程的代碼審查報告,而非當前開源示例工程。前者代碼量更大,結構更復雜。
- SonarQube 掃描
- 基于SonarQube8.2缺省最嚴格的代碼掃描規(guī)則,其中代碼復雜度要求為15。
- 有氣味代碼共90處,其中85處為DTO、Model、常量字典、RPC接口等定義出現重復名稱所致,均與模擬實際業(yè)務有關。
- 其余氣味代碼,是在權衡性能、可讀性和易修改性等因素后保留下來的,具體見圖4。
- Alibaba Code Guide 掃描
- 下載最新版本IDEA插件,同時打開所有審查條件。
- 全部代碼掃描通過。
- Statistic 代碼統(tǒng)計
- 生成代碼總量約為86000多行,主要包括Java、XML、YAML和SQL初始化腳本等。
- Java代碼覆蓋率為37%。
開源工程部署
- 數據初始化。
- 通過常用的數據庫訪問工具(如:navicat),執(zhí)行工程目錄下的zz-orange-demo.sql文件。
- 導入腳本主要負責,數據庫創(chuàng)建、數據表創(chuàng)建和測試數據的插入。
- 環(huán)境準備。 docker是必選組件。通過docker-compose命令,可快速啟停服務所依賴的服務中間件,如nacos、redis、zookeeper、kafka和sentinel dashboard等。中間件的控制臺訪問方式,可參考工程目錄下的README文件。
# 假定當前目錄為工程根目錄。cd zz-resource/docker-files# 啟動和停止帶有基礎服務中間件的docker-compose.yml文件docker-compose up -d# 徹底終止容器docker-compose down# 在第一次啟動之后,可以考慮每次執(zhí)行下面的命令啟動和停止容器。docker-compose startdocker-compose stop
- 后臺工程導入。 以Maven的形式導入IDE,直接編譯運行即可。具體可參考我們的開發(fā)文檔教學版微服務工程導入章節(jié)。
- 后臺服務配置。
- 進入工程目錄下的 zz-resource/config-data/ 子目錄,修改和數據庫相關的配置,具體操作詳見下圖及文字注釋。
- 將該目錄下的所有配置文件導入nacos。nacos控制臺訪問地址 localhost:8848/nacos,用戶名和密碼 nacos/nacos。
- 具體導入方式可參考我們的開發(fā)文檔服務配置章節(jié)。
- 后臺服務啟動。 這里僅以upms服務為例。在開發(fā)環(huán)境中,為每個微服務啟動項配置main class,下圖為IntelliJ IDEA中的配置截圖,配置后點擊Debug/Run按鈕即可啟動。
- 前端工程導入和啟動。
- 將前端工程導入vscode。
- 修改 src -> core -> config 下的配置文件,將baseUrl修改為您服務器地址。
- 安裝依賴,執(zhí)行 npm install。
- 啟動前端服務,執(zhí)行 npm run dev。
- 具體可參考我們的開發(fā)文檔教學版前端工程啟動段落。
主要截圖
覺得不錯可以轉發(fā) 關注支持一下,私信我【代碼生成器】即可