基于SSM源代碼風(fēng)格Java代碼生成器 Maven版開箱即用 摸魚神器

一、序言

UCode Cms 是一款Maven版的Java源代碼生成器,是快速構(gòu)建項(xiàng)目的利器。代碼生成器模塊屬于可拆卸模塊,即按需引入。代碼生成器生成SSM(Spring、SpringBoot、MybatisPlus)風(fēng)格的源代碼。

面試時(shí)經(jīng)常提到面向?qū)ο缶幊?,?shí)際開發(fā)中常常是面向數(shù)據(jù)庫編程,隨著需求的快速變化,數(shù)據(jù)庫的庫表結(jié)構(gòu)也需要相應(yīng)變化,如何根據(jù)庫表結(jié)構(gòu)的變化,快速響應(yīng)到源代碼層次,是Java代碼生成器主要的關(guān)切點(diǎn)。

功能亮點(diǎn)

實(shí)時(shí)讀取庫表結(jié)構(gòu)元數(shù)據(jù)信息,比如表名、字段名、字段類型、注釋等,選中修改后的表,點(diǎn)擊一鍵生成,代碼成即可提現(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暴露。

二、運(yùn)行依賴服務(wù)

代碼生成器運(yùn)行依賴Mysql數(shù)據(jù)庫、Redis服務(wù),版本不限。

Mysql數(shù)據(jù)庫

Mysql數(shù)據(jù)庫中庫表結(jié)構(gòu)分為兩部分,一是系統(tǒng)運(yùn)行必要的系統(tǒng)表(跟代碼生成業(yè)務(wù)無關(guān)),二是用戶自定義的庫表,代碼生成將會讀取。

Redis服務(wù)

Redis服務(wù)跟代碼生成業(yè)務(wù)無關(guān),系統(tǒng)中其它業(yè)務(wù)用到Redis,因此也依賴Redis服務(wù)。

三、快速入門使用

使用demo腳手架cms demo項(xiàng)目,可直接跳轉(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ā)模式下生效。打包時(shí)即使不移除相關(guān)Maven依賴,運(yùn)行時(shí)在非開發(fā)環(huán)境時(shí),相應(yīng)代碼不加載。建議在打包時(shí)移除。

spring:
  profiles:
    active: dev
3、數(shù)據(jù)庫文件

數(shù)據(jù)庫腳本有兩類:核心SQL和用戶自定義表結(jié)構(gòu)。

sql/
├── cms(必選).sql                                 // 核心腳本(必選)    

導(dǎo)入系統(tǒng)表后,用戶需自定義業(yè)務(wù)表,方可體驗(yàn)代碼生成的功能。

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、可視化界面

訪問可視化界面操作需要生成代碼的表

image-20220216105356896
6、重啟項(xiàng)目

勾選表結(jié)構(gòu),點(diǎn)擊生成,重啟項(xiàng)目,相應(yīng)的代碼生效。訪問地址http://localhost:8080/doc.html訪問接口列表。

image

四、高級使用

在完成簡單入門體驗(yàn)后,需要了解代碼生成的高級部分,即全局配置。在項(xiàng)目中搜索類名CodeProperties即可查看所有內(nèi)置可供修改的參數(shù),在全局yml文件中覆蓋默認(rèn)值即可完成修改,按需配置。

單表處理

當(dāng)全局配置ucode.code.joinQuery = false或者使用默認(rèn)配置時(shí),則僅處理單表結(jié)構(gòu)。將表名、字段名、字段類型、備注信息轉(zhuǎn)化為SSM風(fēng)格的源代碼。

多表連接

當(dāng)在全局配置ucode.code.joinQuery = true時(shí),則手動開啟主外鍵查詢,系統(tǒng)會自動讀取表的主外鍵關(guān)系,并將其轉(zhuǎn)化為連接查詢的源代碼。

主要參數(shù)
參數(shù) 默認(rèn)值 使用備注
ucode.code.projectDir 用戶自定義多模塊項(xiàng)目需要指定項(xiàng)目名
ucode.code.removeTablePrefix false 根據(jù)需要是否在生成代碼時(shí)移除表前綴
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ǔ)充信息

使用腳手架,快速體驗(yàn)入手代碼生成器

代碼生成器開源項(xiàng)目源碼地址


2.017.jpeg

原文地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容