提前說明:
文章是實時更新,寫了就會更。
文章是黑馬視頻的筆記,如果要自己學可以點及下面的鏈接:
https://www.bilibili.com/video/BV1pf421B71v/
一、若依介紹
1.版本介紹
若依為滿足多樣化的開發需求,提供了多個版本
-
RuoYi-Vue(SpringBoot+Vue的單體項目)
-
RuoYi-Cloud(SpringCloud+Vue的微服務版本項目)
-
RuoYi-App(Uniapp+Vue移動版本)
RuoYi-APP沒有提供后端,可以適配RuoYi-Vue和RuoYi-Cloud
-
RuoYi-other(若依第三方版本)
2.技術選型
本次筆記選用RuoYi-Vue
技術 | 版本 |
---|---|
JDK | 1.8及以上 |
Mysql | 5.7及以上 |
Redis | 3.0及以上 |
Node | 12及以上 |
3.項目地址
- 前端:https://gitee.com/zi-ning/RuoYi-Vue3
- 后端:https://gitee.com/y_project/RuoYi-Vue
二、項目搭建
1.后端項目搭建
1.1 Git克隆項目
https://gitee.com/y_project/RuoYi-Vue
1.2 導入MySQL
- 創建數據庫
- 找到后端項目中的
sql
文件夾,里面有兩個sql腳本,執行【包含30張表】 - 將SpringBoot項目配置文件中的數據庫配置改成自己的
1.3 啟動Redis
1.4 啟動后端項目
項目的啟動類在ruoyi-admin模塊中的RuoYiApplication中
1.5說明
后端項目自帶的前端是Vue2版本,現在都是用Vue3,所以可以直接刪掉了
2.前端搭建
2.1 Git克隆前端項目
https://gitee.com/zi-ning/RuoYi-Vue3
2.2 下載前端依賴
npm install
2.3 運行前端項目
npm run dev
三、入門案例
現在需要一個課程管理模塊,這個模塊的前端頁面需要條件查詢框、數據顯示框、添加課程框、課程修改框。
1.準備表結構并導入數據庫
#SQL示例
CREATE TABLE courses(id INT AUTO_INCREMENT PRIMARY KEY,code VARCHAR(50) NOT NULL,discipline VARCHAR(100) NOT NULL,course_name VARCHAR(255) NOT NULL,price DECIMAL(10, 2) NOT NULL,target_audience VARCHAR(255),description TEXT,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
2.配置代碼生成信息【重要】
這一步是通過手動配置,從而生成對應的代碼
-
啟動前后端項目,進入前端頁面
-
選擇系統工具——代碼生成——導入
-
選擇剛才創建的表,點擊確定【這樣就把表單交由代碼生成器管理了】
-
點擊對應表單后面的編輯按鈕【可以查看基本信息、字段信息、生成信息等】
-
點擊基本信息:這里修改實體類名稱、作者名稱
這里設置的實體類名稱就是后面他自動生成的實體類名
-
點擊字段信息:這里需要修改字段描述、java類型、java屬性、增刪改勾選框、查詢框、查詢方式、顯示類型
1.字段描述:就用于將來展示的列名 2.java類型:一般不用修改,檢查一遍即可 3.java屬性:就是用來生成后面的實體類,注意駝峰命名 4.增刪改勾選框:一般是結合頁面原型,如果頁面中需要增刪改某個字段,就勾上 5.查詢框:就是將來的條件查詢,勾了就會在上面顯示一個選擇框 6.查詢方式:如果是等值就用=,如果是模糊就用like 7.必填框:如果是必須輸入就勾上 8.顯示類型:默認是文本框由用戶輸入,后面可以改成下拉框等
-
點擊生成信息:修改相關信息
1.包路徑 2.生成模塊名 3.生成業務名 4.生成功能名 5.生成方式 6.上級菜單:生成的頁面在哪個模塊下,默認在系統工具下
-
點擊提交
3.下載代碼并導入項目
上一步配置完成之后,會生成三部分信息:前后端代碼以及動態菜單【前端根據動態菜單動態顯示頁面】,導入項目就可以了
-
點擊右側的下載按鈕
-
導入下載下來的動態菜單SQL
這一步不會新生成一個表,而是插入數據到sys_menu表中
-
導入前端的代碼【包括api以及views頁面】
-
導入java代碼到admin模塊中【三層架構代碼和mybatis的映射文件】
4.重啟項目
四、功能詳解
1.權限控制管理
什么是權限控制:不同權限的用戶登錄相同的系統,可以訪問的頁面不同
若依提供的權限管理模塊:用戶管理、角色管理、菜單管理、部門管理、崗位管理
1.1 RBAC
RBAC是一種廣泛使用的訪問控制模型,通過角色來管理用戶的菜單權限
實現上述的關系,需要使用五張表:用戶表、角色表、菜單表、用戶角色表、角色菜單表
同時若依提供了崗位、部門模塊,實現了更加精細的權限管理
表關系如下:
1.2 菜單分類
- 目錄:一個模塊的大類,點擊后可以展開,不用于頁面跳轉
- 菜單:點擊后可以進入對應的頁面
- 按鈕:點擊對應的按鈕之后,會有對應的操作
2.數據字典
為什么要有數據字典?
前端頁面中的一些表單選項可能在不同表單中都會出現,而單獨編寫后,后期如果要修改會很麻煩,因此使用數據字典統一管理這些字段若依內置的數據字典包括:性別、狀態等
功能包括:字典類型管理、字典數據管理
2.1 表關系說明
說明:
字典類型用于存儲一類字典的統稱,例如我有一個下拉框供用戶選擇城市,那么這類就可以命名為城市,然后字典數據表中存儲具體的城市名,由外鍵指定屬于哪一類字典
2.2 使用案例
將入門案例中學科管理字段改為數據字典維護
-
添加字典類型
-
點擊字典類型添加數據
-
修改對應的代碼生成信息
-
下載代碼,導入前端【如果后端的基本字段沒有動那么就直接導入前端代碼就可以】
3.參數設置
對系統中的參數進行動態維護,而不需要修改代碼。例如直接管理是否開啟驗證碼
閱讀備注中的信息,根據備注修改參數鍵值即可
4.通知公告
若依提供了通知公告的發布,但是由于查看的實現方法很多,因此他沒有實現,我們后續可以自己通過二次開發的方式實現發送郵件、以及彈窗的方式顯示通知
5.日志管理
若依提供了日志管理功能,包括登錄日志和操作日志,這些日志被記錄到數據庫
登錄日志:包含當前登錄用戶、IP地址、登錄狀態、訪問時間等
操作日志:包括操作類型、操作人員等,同時還可以清空日志
6.系統監控
若依提供了用戶監控、緩存監控、數據監控、服務監控等
7.定時任務
我們自己之前設置定時任務的時候都是硬編碼的格式,直接寫死到代碼中,如果需要修改定時任務的時間得去修改代碼。
而若依提供了更好的方式,我們只需要在項目中設置好執行的任務,然后可以在前端項目中動態修改項目執行時間
-
后端創建一個類,加入容器,創建一個方法,用來執行任務
-
在前端項目中新增定時任務,設置需要定時執行的任務和時間表達式
-
前端開啟任務
8.構建表單
通過表單構建工具,開發者只需要簡單的圖形化拖拽操作,就能構建復雜的表單
案例:通過表單構建工具,單獨制作一個添加課程的表單頁面
-
制作表單
-
導出【可以選擇頁面或者彈窗】
-
將導出的文件復制到前端工程中
-
在菜單管理中創建路由地址,根據動態路由展示頁面
9.代碼生成
入門案例中已經使用了基本的代碼生成器,進行單表操作。若依還提供了樹表、主子表(一對多)操作
- 樹表:數據存在層級關系【例如:省/市/縣】
- 主子表:數據存在一對多的關系
案例:樹表關系的使用
10.系統接口
若依集成了Swagger提供了在線接口文檔,可以進行測試
五、項目結構
https://www.bilibili.com/video/BV1pf421B71v?p=12&spm_id_from=pageDriver&vd_source=b246a40ef435cdf32c518bf3f296775d