一味抖、序言
UCode Cms
是一款Maven版的Java源代碼生成器甥啄,是快速構(gòu)建項目的利器一疯。代碼生成器模塊屬于可拆卸模塊撼玄,即按需引入。代碼生成器生成SSM(Spring墩邀、SpringBoot掌猛、MybatisPlus)風(fēng)格的源代碼。
面試時經(jīng)常提到面向?qū)ο缶幊堂级茫瑢嶋H開發(fā)中常常是面向數(shù)據(jù)庫編程荔茬,隨著需求的快速變化,數(shù)據(jù)庫的庫表結(jié)構(gòu)也需要相應(yīng)變化竹海,如何根據(jù)庫表結(jié)構(gòu)的變化慕蔚,快速響應(yīng)到源代碼層次,是Java代碼生成器主要的關(guān)切點斋配。
功能亮點
實時讀取庫表結(jié)構(gòu)元數(shù)據(jù)信息孔飒,比如表名、字段名艰争、字段類型十偶、注釋等,選中修改后的表园细,點擊一鍵生成
惦积,代碼成即可提現(xiàn)出表結(jié)構(gòu)的變化。
單表快速轉(zhuǎn)化restful風(fēng)格的API接口并對外暴露服務(wù)猛频。對于百余張表的數(shù)據(jù)庫狮崩,使用代碼生成器讓開發(fā)事半功倍蛛勉。
多表連接查詢。多表連接查詢默認(rèn)不開啟睦柴,需要在全局文件中手動配置诽凌。開啟后代碼生成器會自動讀取數(shù)據(jù)庫元數(shù)據(jù)信息中的主外鍵關(guān)系,分別生成一對一
坦敌、一對多
侣诵、多對多
風(fēng)格的源代碼。
生成的代碼接口可通過Swagger暴露狱窘。
二杜顺、運行依賴服務(wù)
代碼生成器運行依賴Mysql數(shù)據(jù)庫、Redis服務(wù)蘸炸,版本不限躬络。
Mysql數(shù)據(jù)庫
Mysql數(shù)據(jù)庫中庫表結(jié)構(gòu)分為兩部分,一是系統(tǒng)運行必要的系統(tǒng)表(跟代碼生成業(yè)務(wù)無關(guān))搭儒,二是用戶自定義的庫表穷当,代碼生成將會讀取。
Redis服務(wù)
Redis服務(wù)跟代碼生成業(yè)務(wù)無關(guān)淹禾,系統(tǒng)中其它業(yè)務(wù)用到Redis馁菜,因此也依賴Redis服務(wù)。
三铃岔、快速入門使用
使用demo腳手架cms demo項目火邓,可直接跳轉(zhuǎn)到步驟三。腳手架是標(biāo)準(zhǔn)的Spring Web工程德撬,內(nèi)置少量配置信息铲咨,用戶替換后可快速上手。
1蜓洪、前提條件
引入如下依賴是使用代碼生成器功能的前提條件纤勒,其中代碼生成器模塊
在代碼生成完畢后,建議移出隆檀。
<!--ucode-cms核心依賴-->
<dependency>
<groupId>xin.altitude.cms</groupId>
<artifactId>ucode-cms-spring-boot-starter</artifactId>
<version>1.3.3</version>
</dependency>
<!--代碼生成器模塊(非必選)-->
<dependency>
<groupId>xin.altitude.cms.code</groupId>
<artifactId>ucode-cms-code-spring-boot-starter</artifactId>
<version>1.3.3</version>
</dependency>
2摇天、全局配置
環(huán)境變量必須綁定為開發(fā)環(huán)境,代碼生成器僅在開發(fā)模式下生效恐仑。打包時即使不移除相關(guān)Maven依賴泉坐,運行時在非開發(fā)環(huán)境時,相應(yīng)代碼不加載裳仆。建議在打包時移除腕让。
spring:
profiles:
active: dev
3、數(shù)據(jù)庫文件
數(shù)據(jù)庫腳本有兩類:核心SQL和用戶自定義表結(jié)構(gòu)。
sql/
├── cms(必選).sql // 核心腳本(必選)
導(dǎo)入系統(tǒng)表后纯丸,用戶需自定義業(yè)務(wù)表偏形,方可體驗代碼生成的功能。
4觉鼻、連接數(shù)據(jù)庫
如果已經(jīng)配置完數(shù)據(jù)庫連接俊扭,則可忽略此步驟
spring:
datasource:
# 主庫數(shù)據(jù)源
url: jdbc:mysql://localhost:3306/ucode-cms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
5、可視化界面
訪問可視化界面操作需要生成代碼的表
6坠陈、重啟項目
勾選表結(jié)構(gòu)萨惑,點擊生成,重啟項目仇矾,相應(yīng)的代碼生效庸蔼。訪問地址http://localhost:8080/doc.html
訪問接口列表。
四若未、高級使用
在完成簡單入門體驗后朱嘴,需要了解代碼生成的高級部分倾鲫,即全局配置粗合。在項目中搜索類名CodeProperties
即可查看所有內(nèi)置可供修改的參數(shù),在全局yml
文件中覆蓋默認(rèn)值即可完成修改乌昔,按需配置隙疚。
單表處理
當(dāng)全局配置ucode.code.joinQuery = false
或者使用默認(rèn)配置時,則僅處理單表結(jié)構(gòu)磕道。將表名供屉、字段名、字段類型溺蕉、備注信息轉(zhuǎn)化為SSM風(fēng)格的源代碼伶丐。
多表連接
當(dāng)在全局配置ucode.code.joinQuery = true
時,則手動開啟主外鍵查詢疯特,系統(tǒng)會自動讀取表的主外鍵關(guān)系哗魂,并將其轉(zhuǎn)化為連接查詢的源代碼。
主要參數(shù)
參數(shù) | 默認(rèn)值 | 使用備注 |
---|---|---|
ucode.code.projectDir |
空 | 用戶自定義多模塊項目需要指定項目名 |
ucode.code.removeTablePrefix |
false |
根據(jù)需要是否在生成代碼時移除表前綴 |
ucode.code.packageName |
xin.altitude.front |
配置用戶自己的包名 |
ucode.code.useLombok |
true |
默認(rèn)使用Lombok |
ucode.code.filterSysTable |
true |
默認(rèn)過濾不顯示系統(tǒng)表 |
ucode.code.joinQuery |
false |
是否使用連接查詢(默認(rèn)單表查詢) |
ucode.code.xml.addXml |
false |
雖然說不建議使用XML文件編寫SQL漓雅,但仍提高可開啟開關(guān) |
ucode.code.mapper.useCache |
true |
默認(rèn)開啟二級緩存录别,自定義業(yè)務(wù)緩存可關(guān)閉 |
補(bǔ)充信息
使用腳手架,快速體驗入手代碼生成器
代碼生成器開源項目源碼地址