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