「SpringCloud」之代碼生成器使用配置說明
一、新建數(shù)據(jù)源配置
因考慮到多數(shù)據(jù)源問題,代碼生成器作為一個通用的模塊,后續(xù)可能會為其他工程生成代碼,所以,這里不直接讀取系統(tǒng)工程配置的數(shù)據(jù)源,而是讓用戶自己維護(hù)。

參數(shù)說明
- 數(shù)據(jù)源名稱:用于查找區(qū)分?jǐn)?shù)據(jù)源的名稱
- 連接地址 : 連接方式:數(shù)據(jù)庫類型:數(shù)據(jù)庫地址等參數(shù),例:jdbc:mysql://127.0.0.1/gitegg_cloud?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&all owMultiQueries=true&serverTimezone=Asia/Shanghai
- 用戶名:登錄數(shù)據(jù)庫的用戶名
- 密碼:登錄數(shù)據(jù)庫的密碼
- 數(shù)據(jù)庫驅(qū)動:數(shù)據(jù)庫驅(qū)動類型,例:com.mysql.jdbc.Driver(MySQL5 )或 com.mysql.cj.jdbc.Driver(MySQL8 )
- 數(shù)據(jù)庫類型:選擇對應(yīng)的數(shù)據(jù)庫類型,如果有新增可以新增數(shù)據(jù)字典
- 備注:備注信息
二、新建業(yè)務(wù)數(shù)據(jù)字典
界面的增刪改查界面會有一些數(shù)據(jù)字典的下拉框或者單選、多選等基礎(chǔ)數(shù)據(jù),這些根據(jù)具體需要生成代碼的表設(shè)計(jì)提前做好規(guī)劃,在業(yè)務(wù)字典中提前建好數(shù)據(jù)字典。在自定類型表,點(diǎn)擊一條記錄所在的行即是選中,右側(cè)字典值列表會出現(xiàn)對應(yīng)的字典值列表。

三、代碼生成的基礎(chǔ)配置
代碼生成的基礎(chǔ)配置實(shí)際也是一類數(shù)據(jù)字典,但這是只針對代碼生成功能模塊使用的數(shù)據(jù)字典,比如在界面上選擇的數(shù)據(jù)庫類型、表單展現(xiàn)類型、樹類型等、都是獲取這里的配置數(shù)據(jù)。在實(shí)際應(yīng)用開發(fā)過程中,可以根據(jù)自己的需求進(jìn)行新增、修改。

四、校驗(yàn)規(guī)則配置
在我們業(yè)務(wù)開發(fā)過程中,無論是界面還是接口,都會對數(shù)據(jù)字段的長度、大小、類型等進(jìn)行校驗(yàn),這里的配置主要是配置數(shù)據(jù)字段校驗(yàn)的正則表達(dá)式,在代碼生成時,會在前端代碼和后臺代碼添加校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn)。

五、代碼配置(重點(diǎn))
代碼配置是實(shí)際代碼生成的重點(diǎn),以上幾項(xiàng)配置都是為代碼生成做前期準(zhǔn)備工作,代碼配置模塊是實(shí)際的針對業(yè)務(wù)表進(jìn)行配置,最終生成代碼。
1、 新建代碼配置

配置參數(shù)說明
- 數(shù)據(jù)源 :選擇我們上面配置的需要生成代碼的數(shù)據(jù)庫。
- 模塊名稱:需要生成代碼的模塊名稱,這個名稱將用作菜單名稱、系統(tǒng)提示等。
- 模塊代碼:系統(tǒng)在生成代碼時會根據(jù)模塊代碼新建對應(yīng)名稱的目錄,進(jìn)行存放該模塊的代碼。
- 服務(wù)名稱:微服務(wù)注冊到Nacos上的名稱,框架中這個取得的是微服務(wù)pom.xml里的artifactId配置,在生成代碼時,微服務(wù)名稱將加在請求url的前面,請一定確認(rèn)這個字段的正確性,否則訪問不到后臺服務(wù)。
- 表名 : 需要生成代碼的表。
- 表別名 :在生成多表聯(lián)合代碼時,這個作為表的別名在查詢語句的mapper文件中使用。
- 表前綴 :在我們定義表時,t_代碼是表(table的首字母),下劃線后面代碼子系統(tǒng)的名稱,再后面是模塊名稱,那么在我們生成代碼時,前面的前綴需要去掉,只保留模塊名稱,即生成代碼時的實(shí)體類名稱。
- 父級包名:定義生成模塊代碼的包路徑,代碼將存放在這個包名下。
- 表單類型:在進(jìn)行增刪查改時的展現(xiàn)方式,有彈出框、新打開一個頁面、右側(cè)伸縮抽屜等形式
- 表單列數(shù):定義表單字段在表里每行展示幾列
- 數(shù)據(jù)展示:配置數(shù)據(jù)查詢列表的展示形式,有表格、樹等形式
- 左樹類型: 當(dāng)數(shù)據(jù)展示形式包含左側(cè)樹時,這里可以選擇左側(cè)樹的數(shù)據(jù)類型
- Controller請求路徑:配置在Controller代碼中的 @RequestMapping 參數(shù),即模塊的請求路徑
- 后端代碼保存路徑:后端代碼的存放路徑,到具體微服務(wù)的根目錄即可,即src目錄的上一級目錄,不需要具體到src目錄和src下面的目錄。
- 前端代碼保存路徑:前端代碼的存放路徑,到具體前端代碼的根目錄即可。
- 頁面文件目錄自定義: 前端代碼默認(rèn)放到views目錄下,不設(shè)置的話會使用服務(wù)請求和模塊代碼兩級字段開始生成目錄,如果需要大的區(qū)分,這里可以再設(shè)置一級目錄。
- 生成類型:有些代碼生成可能只有接口,或者只想重新生成頁面代碼,那么這里可以選擇是全部生成,還是只生成后端代碼或前端代碼。
- 狀態(tài)處理:具體業(yè)務(wù)模塊中,狀態(tài)是一個常用的字段,如果要生成的代碼有狀態(tài)字段,那么這里可以選擇是否生成對狀態(tài)相關(guān)操作代碼。
- 支持導(dǎo)出:配置該模塊是否有導(dǎo)出功能。
- 支持導(dǎo)入:配置該模塊是否有導(dǎo)入功能。
- 聯(lián)表類型:配置該模塊在操作時,是進(jìn)行多表操作還是單表操作。
- 查詢復(fù)用:代碼中列表查詢(分頁或不分頁)和單條記錄查詢可以使用同一條sql,基于性能方面考慮,這里可以選擇是生成單獨(dú)的查詢方法,還是復(fù)用同一個查詢方法。
2、配置代碼生成規(guī)則
在已建好的代碼配置列表中點(diǎn)擊"配置規(guī)則"按鈕,進(jìn)入到代碼生成規(guī)則配置頁面。如果在上一步中選擇的是多表查詢,那么這里會進(jìn)入多表配置界面,如果選擇的是單表,那么這里直接進(jìn)入字段配置界面。
1). 配置聯(lián)表
- 多表配置列表

- 多表配置表單

配置參數(shù)說明
- 表名 : 選擇相同數(shù)據(jù)源下的表。
- 別名 : 聯(lián)表查詢時,mapper.xml里面SQL語句的表別名。
- 表前綴 : 去除系統(tǒng)和模塊標(biāo)識,只保留實(shí)體名稱。
- 排序 : 顯示排序及在SQL查詢時的排序。
- 聯(lián)表方式 : 表連接方式,LEFT JOIN、RIGHT JOIN、INNER JOIN、UNION、UNION ALL等
- 查詢字段 : 此表需要查詢的字段
- 自定義on條件: 需要和主表關(guān)聯(lián)的字段及自定義的條件
2). 配置字段

配置參數(shù)說明
- 字段描述 : 獲取數(shù)據(jù)表的描述信息,用于字段名稱和展示在頁面字段的label。
- 字段類型 : 自動轉(zhuǎn)換數(shù)據(jù)庫定義的字段類型為JAVA對應(yīng)的字段類型。
- 字段名稱 : 實(shí)體類里面字段的定義。
3). 配置表單

配置參數(shù)說明
- 表單新增 : 字段是否展示在界面的新增表單。
- 表單編輯 : 字段是否展示在界面的編輯表單。
- 組件類型 : 字段展示在界面的類型,INPUT、SELECT、CHECKBOX等。
- 字典編碼 : 當(dāng)字段的組件類型為選擇類型時,提供選擇的填充數(shù)據(jù)。此數(shù)據(jù)來自業(yè)務(wù)字典。
4). 配置表單校驗(yàn)

配置參數(shù)說明
- 最小長度 : 字段的最小長度,初始值來自數(shù)據(jù)庫字段定義。
- 最大長度 : 字段的最大長度,初始值來自數(shù)據(jù)庫字段定義。
- 是否必填 : 字段是否必填。
- 是否唯一 : 字段是否唯一,如果配置為唯一,那么在表單新增或編輯時會自動生成校驗(yàn)方法。
- 校驗(yàn)類型 : 選擇已配置的通用正則表達(dá)式。
- 正則表達(dá)式 : 對于非通用的特殊字段,可以自定義正則表達(dá)式。
- 最大值 : 當(dāng)字段為數(shù)值類型時,字段的最大值,初始值來自數(shù)據(jù)庫字段定義。
- 最小值 : 當(dāng)字段為數(shù)值類型時, 字段的最小值,初始值來自數(shù)據(jù)庫字段定義。
5). 配置數(shù)據(jù)展示列表

配置參數(shù)說明
- 查詢條件 : 是否是查詢條件,展示在界面的查詢條件區(qū)域。
- 查詢類型 : 字段的查詢類型,等于、不等于、大于、小于等。
- 列表展示 : 是否展示在查詢結(jié)果的數(shù)據(jù)表格中。
- 支持導(dǎo)入 : 字段是否支持導(dǎo)入,在代碼配置中支持導(dǎo)入時,此字段生效。
- 支持導(dǎo)出 : 字段是否支持導(dǎo)出,在代碼配置中支持導(dǎo)出時,此字段生效。
6). 完成保存配置,在列表中點(diǎn)擊生成代碼按鈕,生成代碼。

六、配置資源權(quán)限
執(zhí)行完代碼生成操作之后,會在后臺代碼的mapper.xml同級目錄生成一個同名的.sql文件,這里面是訪問新生成代碼模塊的資源菜單權(quán)限腳本。
源碼地址:
GitEgg: GitEgg 是一款開源免費(fèi)的企業(yè)級微服務(wù)應(yīng)用開發(fā)框架,旨在整合目前主流穩(wěn)定的開源技術(shù)框架,集成常用的最佳項(xiàng)目解決方案,實(shí)現(xiàn)可直接使用的微服務(wù)快速開發(fā)框架。
GitHub: https://github.com/wmz1930/GitEgg