項目背景:
1、 正好逢着公司要開始做2.0項目的開發,所有項目都需要重構,由於之前一直在維護老的項目。老項目結構非常混亂,基本沒有使用什麼框架,項目性能差,可維護性低。所以就準備使用swagger+SSM來重構。
2、現在的項目大都是微服務架構,一般一個模塊就是一個獨立的服務,然後使用k8s啓動多個實例,從而實現高可用。像我在公司就服務七八個小模塊,在2.0的開發中,每個模塊幾乎都要重構,每次都要去創建一個ssm項目–>寫rest層–>寫service層–>寫dao層…,感覺重複的工作太多了。我只想寫業務邏輯,簡單的增刪改查我都不想寫,於是就開發jbot項目。
項目地址:https://github.com/wllfengshu/jbot
1 項目介紹
jbot項目可以一鍵生成 swagger + springBoot + spring + mybatis 項目,單表的增刪改查可以直接使用。
2 項目結構
jbot
├── web ── web模塊,提供對外web接口
├── core ── 核心模塊,負責生成目標項目
├── common ── 公共組件模塊
3 技術選型
3.1 後端技術
技術 | 名稱 |
---|---|
SpringBoot | 容器 |
MyBatis | ORM框架 |
Druid | 數據庫連接池 |
Swagger2 | 接口測試框架 |
Maven | 項目構建管理 |
注意:本項目還使用通用mapper、統一的自定義異常處理、統一的日誌切面處理、docker容器管理、自動生成swagger接口文檔和markdown文檔
3.2 前端技術
技術 | 名稱 |
---|---|
jQuery | 函式庫 |
Bootstrap | 前端框架 |
AngularJS | JS框架 |
4 環境搭建
4.1 開發工具
- MySql
- idea或者eclipse
4.2 開發環境
- Jdk8+
- Mysql5.5+
- Maven3.5+
4.3 本項目使用方法
-
1、啓動mysql,並且創建一個名爲test的數據庫(待生成項目實體類對應的表都必須在test庫中創建好)
-
2、設置jbot運行的環境變量
- 數據庫連接地址: db_url eg:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false - 數據庫用戶名: db_username eg:root - 數據庫密碼: db_paasword eg:root
注:如果不想設置環境變量,可以手動修改application.yml文件
-
3、啓動JbotApplication(直接在main方法上右鍵啓動即可)
-
4、使用瀏覽器打開http://localhost:8080/swagger-ui.html進行接口測試
-
5、使用瀏覽器打開http://localhost:8080進入jbot主頁面
4.4 資源下載
- JDK8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Maven http://maven.apache.org/download.cgi
5 生成的目標項目規範約定
1、生成的entity、dao、service、serviceImpl、rest分別放到對應的包裏,文件名稱爲表名首字母大寫、去掉下劃線、駝峯結構;
2、生成的entity的屬性名爲表字段名的駝峯形式;
3、serviceImpl放的在service包裏的impl包裏;
4、生成的rest包含swagger,可以使用http://localhost:8080/項目名/swagger-ui.html訪問;
5、生成的每張表都對應“增刪改查”的方法,可以直接使用;
6、請確保每張表的主鍵名爲id(如果不爲id,請手動在生成的entity中使用@Id指明主鍵);
注:本項目不支持聯合主鍵,如果是聯合主鍵,請參考自行百度,按照對應的方法修改本項目生成的目標項目
6 演示地址
演示地址:https://wllfengshu.github.io/jbot/
使用步驟:
(1)使用瀏覽器打開http://localhost:8080
(2)填寫“項目名”
(3)填寫“包名”
(4)填寫數據庫地址,並點擊“測試連接”(可以支持自定義數據庫地址)
(5)勾選待生成的表
(6)點擊“生成項目”
7 預覽圖
- 使用http://localhost:8080/swagger-ui.html 訪問(jbot接口圖)
- 使用http://localhost:8080 訪問(jbot界面圖)
- 生成的項目的效果圖(使用http://localhost:8080/dnc/swagger-ui.html 訪問)
- 生成的項目結構
- 生成的項目dao
- 生成的項目entity
- 生成的項目mapper
- 生成的項目markdown接口文檔
- 生成的項目示例
https://github.com/wllfengshu/jbot-dnc
本項目完全開源,大家可以直接使用本項目,也可以在本項目的基礎上進行修改和完善。如果覺得本項目能給您帶來方便,請在github中點亮star,謝謝大家的支持。