国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

若依使用及源碼解析(前后端分離版)

這篇具有很好參考價值的文章主要介紹了若依使用及源碼解析(前后端分離版)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

部署環(huán)境

JDK >= 1.8

MYSQL >= 5.7

Maven >= 3.0

Node >= 12

Redis >= 3

運行若依項目

下載若依源碼

?若依官網(wǎng)

若依項目源碼(前后端分離)

運行后端項目?

ruoyi-ui就是vue項目(這里使用vscode打開)?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?整體用idea打開

1.配置數(shù)據(jù)庫(sql提供sql文件中的sql腳本配置)

創(chuàng)建數(shù)據(jù)庫 ruoyi_vue數(shù)據(jù)庫并導入quartz.sql腳本和ry_20230706.sql腳本

結(jié)果為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?2.在工程中配置數(shù)據(jù)源(在ruoyi-admin中的配置文件中配置)

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

3.配置redis

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

4.通過啟動類RuoYiApplication進行啟動。?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?后端啟動成功。

啟動前端項目(ruoyi-ui)?

?1.打開前端項目若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

2.打開終端

#導入所需要的依賴
npm install 

#使用下面指令解決下載速度慢的問題
npm install --registry=https://registry.npmmirror.com

#啟動前端項目
npm run dev

?前端啟動結(jié)果為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

用戶名:admin,密碼: admin123

進入主頁

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?驗證碼實現(xiàn)

實現(xiàn)的思路:后端會隨機生成一個固定的表達式比如(2*2=?@4),通過字符串符分割的方式,獲得對應的題目和答案,后端會通過該題目生成對應的驗證碼圖, 并將答案存放到redis中,后端把生成好的圖片和redis對應的key傳給前端。前端通過調(diào)用后端api傳入用戶輸入值和之前的key值,最終這個api查詢redis,判斷redis中的value是否和用戶輸入的值一樣,最終實現(xiàn)驗證碼。

前端的實現(xiàn)步驟

1.在頁面初始化時調(diào)用自定義方法 getCode

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

調(diào)用該方法后會獲取到后端生成的圖片 img 和對應的key,這里使用uuid表示。

?自定義的getCodeImage的方法為下若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在該方法中調(diào)用了自定義方法request,該方法就是使用axios實現(xiàn)ajax。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?在該request.js中設置的了前端請求的共部分?VUE_APP_BASE_API, 這里該值為:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?此時表示開發(fā)環(huán)境,我們后續(xù)可以根據(jù)需求設置為上線環(huán)境。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?上線環(huán)境的配置為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

因為Request方法中設置了BaseURL所以對應的getCodeImg的請求路徑為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

我們通過觀察可以發(fā)現(xiàn)前端地址是 localhost:80, 而我們的后端接口卻是localhost:8080,存在跨域的問題,這種跨域問題前端和后端都有方法解決,這里通過前端解決此問題。

前端通過反向代理的方法解決,使用vue自帶的反向代理服務器。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

其中在進行反向代理的時候會將將/dev-api重寫成空,如果將localhost:80代理成localhost:8080,最終實現(xiàn)反向代理。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?最終前端實現(xiàn)驗證碼的效果。

后端的實現(xiàn)步驟

?Controlle層的實現(xiàn)方法為下:

判斷項目是否開啟驗證,項目是支持不開啟驗證的。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript生成一個vo對象,用于最后返回給前端,這里的vo對象就是自定義的AjaxResult。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?生成對應的uuid用于作為redis中的key。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

通過自定義方法createText生成題目和答案拼接的字符串,通過分割字符,獲得題目和答案。

生成的表達式效果為下:?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

通過createImage將題目生成對應的圖片。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?將key和對應的答案存放到redis中。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

將生成的圖片以流的形式也就是這里的os,最終通過流的形式返回給前端, uuid和圖片都封裝到ajaxResult中,最終將這個vo返回給前端。

完成驗證碼。

登錄實現(xiàn)

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

調(diào)用service層的login

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?驗證碼校驗

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

通過uuid從redis中獲取對應驗證碼的答案,獲取后就將對應的鍵值對從redis中刪除,判斷用戶輸入的驗證碼的有效性,錯誤就返回異常。

判斷賬號和密碼的有效性?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?只要出現(xiàn)錯誤就會通過異步的方式記錄日志到數(shù)據(jù)庫中的sys_logininfor中若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?sys_logininfor表為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?使用springsecurity設置權(quán)限若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

獲取當前用戶的登錄信息,將該用戶信息更新到數(shù)據(jù)庫sys_user中?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

updateUserProfile就是修改數(shù)據(jù)庫表中對應的用戶信息。

?sys_user表為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

使用JWT生成對應的token令牌。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?使用setUserAgent方法獲取loginUser的完整信息。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

使用refreshToken方法設置loginUser的過期時間(默認是30分鐘),在前端用不到,主要是為了做備份。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?并將loginUser的信息持久化到redis中,設置其的有效時間。

生成JWT令牌

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?最后會將生成好的token返回給前端。

在前端的login中

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?會將獲得JWT令牌設置為前端的token,也就是存到cookie中,最終完成登錄。

獲取用戶角色和權(quán)限

getInfo(將最終的數(shù)據(jù)存在vueX中)

在我們進行登錄操作以后,我們可以觀察到發(fā)送了兩個請求。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

1.前端實現(xiàn)

因為getInfo是獲取用戶的信息,所以為了保證正常的使用,進入每個界面都會調(diào)用getInfo,設置在全局路由?promission.js中。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?router.beforeEach方法的作用就是在做每次路由前都會執(zhí)行其中的內(nèi)容。(這里就是每次都會執(zhí)行getInfo和getRoutes)

在GetInfo方法中調(diào)用getInfo方法,最終返回給前端當前的用戶數(shù)據(jù),將用戶數(shù)據(jù)存儲在全局存儲中(這里會存儲用戶的角色,權(quán)限,名字,頭像 ,此處為該getInfo實現(xiàn)的核心)

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在該方法中的getInfo方法的實現(xiàn)為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?就是調(diào)用后端的getInfo接口

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?2.后端實現(xiàn)

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?獲取用戶的身份信息,如果不是admin就到數(shù)據(jù)庫中從查詢。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

因為是多對多的關系,所以將sys_role,sys_user,sys_user_role三表聯(lián)合起來查詢。

最終查出用戶的身份,并返回對應的身份。

獲取用戶的權(quán)限 ,如果用戶是admin的話就直接返回*.*.*。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?如果不是就到數(shù)據(jù)庫查詢,通過身份的判斷,關聯(lián)sys_menu和sys_role兩表返回該用戶有權(quán)限訪問的菜單。

最終將數(shù)據(jù)返回給前端,完成getInfo。

getRouters

1.前端實現(xiàn)?

?在界面加載時就會調(diào)用方法GenerateRoutes若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在GenerateRoutes中會調(diào)用?getRouters方法,調(diào)用后端對用的getRouters接口

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?2.后端實現(xiàn)

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在數(shù)據(jù)庫中對應的menu表中設置了父id用于遞歸做樹形菜單。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

通過userId查詢中間表sys_role_menu,查詢出所有屬于該角色的menu。

通過對應的菜單表通過遞歸的方式將其組裝起來成為以含有完整子菜單的菜單表。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript通過遍歷根據(jù)parentId查詢所有主節(jié)點,通過方法recursionFn查詢各個主節(jié)點對應的子節(jié)點,并將其組裝起來。若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

從通過userId查詢到總菜單列表中查詢出該節(jié)點對應的所有菜單,將這些菜單全部設置為當前節(jié)點的子菜單,設置完畢之后,通過循環(huán)遞歸的方式去訪問各個子節(jié)點的對應的子菜單并對其進行組裝,以此類推,那些沒有子菜單的菜單就不會繼續(xù)遞歸,最終完成菜單的組裝。

最終返回組裝好的菜單列表返回給前端,完成getRouters。

首頁數(shù)據(jù)加載

主頁分析?

進入主頁

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在登錄時會執(zhí)行handleLogin方法會通過路由到主界面,該方法會路由到"/"

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?對應"/"的路由為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?會去加載主組件Layout,還會加載子組件/views/index.vue

?因為Layout組件沒有特定指定對應名字的vue界面,所以默認就會跳轉(zhuǎn)到該組件文件夾下的index.vue

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在該index.vue中sidebar就是自定義的側(cè)邊欄組件,app-mian就是主界面的自定義組件。

?在sidebar組件中就是去生成對應的樹形菜單。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

我們可以發(fā)現(xiàn)在我們進入主頁后,直接加載主頁的信息,而不是別的菜單信息。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?在路由中我們做了重定向,在地址是"/"時會直接重定向到 /views/index.vue界面。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?用戶管理界面分析

在我們點擊用戶管理界面時對應的路徑為下:?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

我們就可以找到對應的index.vue文件

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?在加載該界面時就會去調(diào)用方法getList和getDeptTree。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

1.getList?

getList獲取的數(shù)據(jù)由于展示頁面中的用戶信息,getDeptTree獲取的數(shù)據(jù)由于生成頁面中的部門樹形圖。

getList通過調(diào)用listUser方法進行實現(xiàn),這里queryParams就是用戶在界面中設置的限制條件。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?params就是傳入的搜索的限制條件若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

發(fā)送的請求為下:?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?@PreAuthorize注解就是判斷當前用戶身份有權(quán)限調(diào)用該接口,這里是管理員角色,權(quán)限就是

*:*:*,參數(shù)就是傳入的限制條件。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

@DataScope(deptAlias = "d, userAlias = "u"),此注解用于設置別名。?

?2.getDeptTree

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

deptTreeSelect方法

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

發(fā)送的請求為下:?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?后端的Controller中若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

也是使用和菜單組裝的遞歸方式將部門進行組裝,最終返回給前端。(就是廣度優(yōu)先搜索)

?用戶數(shù)據(jù)分頁

在用戶管理中用戶數(shù)據(jù)存在分頁的步驟

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在發(fā)送獲取用戶數(shù)據(jù)的請求時就會攜帶對應的分頁參數(shù)

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?分頁設置步驟就在getDataTable方法中若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

在方法startPage中就會設置分頁

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

該方法使用mybatis實現(xiàn)分頁操作。此時我們會有一個疑問,它是怎么獲取分頁參數(shù)的呢?(我們在controller層中可沒有就是對應的分頁參數(shù))

setReasonable(reasonable)的作用就是設置頁面邏輯判斷。(如果頁面為負數(shù),字母,那么頁面就會自動設置為1,保證邏輯正確)

在buildPageRequest中通過 ServletUtils工具類獲取請求對應的路徑參數(shù)。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

通過對應的名字獲取對應的路徑參數(shù)。?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?在我們這給請求中的路徑參數(shù)就是pageNum和pageSize。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?獲取到對應的分頁參數(shù),使用pageHelper生成對應的page結(jié)果。(mybatis的pagehelper會通過攔截器在我們查詢對應的用戶數(shù)據(jù)時自動進行分頁),mybtis的pageHelper只需要我們配置其參數(shù)也就是配置當前頁碼和總頁數(shù),配置完后在我們查詢數(shù)據(jù)的時候就會自動實現(xiàn)分頁效果。

?將最終分頁的總數(shù)據(jù),總個數(shù),封裝成對象返回給前端。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

前端會獲取到用戶的數(shù)據(jù)列表和用戶的個數(shù)。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

最終完成分頁。

添加用戶

添加用戶前的數(shù)據(jù)加載

在點擊新增按鈕時,會調(diào)用方法handleAdd方法。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

調(diào)用后端接口為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?獲取用戶的基本信息,因為這里是新增操作且身份是admin,所以就返回對應的身份列表,所有職位列表。(這里沒有返回部門列表,因為需要顯示所有惡的部門,之前已經(jīng)查詢過了,所以我們直接使用之前查到的部門列表)最終實現(xiàn)數(shù)據(jù)加載。

添加用戶

在新增頁面中,填寫數(shù)據(jù)完成后,調(diào)用方法submitform。?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

調(diào)用后端接口

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?校驗基本的信息,設置被新建的時間,對密碼進行加密。

最終完成用戶的添加。

修改用戶

在點擊修改的時候,會調(diào)用handleUpdate,該方法會調(diào)用后端的接口?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

該后端接口就會通過userId返回對應的數(shù)據(jù)。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?在設置好修改修改的新內(nèi)容后,點擊修改就會調(diào)用后端的以下方法edit:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

其會先判斷該用戶是否為超級管理員,如果是就不能進行修改,判斷當前用戶是否有訪問權(quán)限,判斷基本的輸入,設置修改時間,對新密碼進行加密?。

在updateUser中其步驟就是先刪除對應的該用戶舊信息,在重新添加該用戶的新信息。

最終完成修改。

刪除用戶

點擊刪除按鈕就都會調(diào)用handleDelete函數(shù)?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

handleDelete方法為下:?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?通過delUser會調(diào)用后端接口

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?如果要刪除的用戶就是當前用戶的話就無法刪除,最終實現(xiàn)的刪除也是邏輯刪除。(并非真正的刪除)

代碼自動生成

在改該項目的數(shù)據(jù)庫中創(chuàng)建對應的新表?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?在代碼生成中選擇導入表,選中test表。若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

點擊編輯按鈕設置基本信息。(每個屬性的注釋,生成的包名及路徑)?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

因為是基于若依項目,所以設置對應的上級菜單。?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

設置對應的上級菜單。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

點擊生成代碼,?最終會生成一個壓縮包,解壓進行使用。

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

1.后端修改部分?

將對應的代碼復制到前后端即可。?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?直接選中java和resources將其復制到項目的main中(直接心中 idea中main的文件夾粘貼即可)

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript?若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?2.前端修改部分

選中api和views直接復制到ruoyi-ui項目中(選中src進行粘貼,也就是粘貼到根路徑)?

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

?若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript??

執(zhí)行SQL(導入新菜單在數(shù)據(jù)庫中的信息)

重新運行進行測試(后端點擊構(gòu)建項目按鈕),測試結(jié)果為下:

若依使用及源碼解析(前后端分離版),SpringBoot,vue.js,前端,javascript

最終完成代碼的自動生成。文章來源地址http://www.zghlxwxcb.cn/news/detail-732129.html

到了這里,關于若依使用及源碼解析(前后端分離版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 使用springboot框架Java+vue2開發(fā)的智慧班牌系統(tǒng)源碼,SaaS云平臺前后端分離架構(gòu)

    使用springboot框架Java+vue2開發(fā)的智慧班牌系統(tǒng)源碼,SaaS云平臺前后端分離架構(gòu)

    智慧班牌系統(tǒng)可實現(xiàn)數(shù)字化辦公,對外向?qū)W生家長提供各種服務,如:消息通知、請假管理,校園活動,學生動態(tài),教師通訊錄,學生定位等各種服務。對內(nèi)向教師提供各類服務,如:班級管理,考勤管理,請假管理,活動管理,課堂點名,家長會管理,教師課程等等各種服

    2024年02月12日
    瀏覽(26)
  • 手把手從安裝本地虛擬機,基于docker,部署springboot+vue項目(若依框架前后端分離版本演示),基于openjdk的dockerfile

    手把手從安裝本地虛擬機,基于docker,部署springboot+vue項目(若依框架前后端分離版本演示),基于openjdk的dockerfile

    部署環(huán)境提供vm16,和centos7,其中把鏡像改成.iso文件就可以了 阿里云鏈接: https://www.alipan.com/s/BTnpjuHWtEp 為什么用阿里云,不限速啊,秉持著開源白嫖的精神 新建虛擬機 選擇鏡像 創(chuàng)建用戶 設置虛擬機存存放位置 默認下一步 自定義硬件 選了擴大一下內(nèi)存,擴不擴無所謂 檢查

    2024年01月16日
    瀏覽(43)
  • 【學習】若依源碼(前后端分離版)之 “ 異常處理”

    通常一個web框架中,有大量需要處理的異常。比如業(yè)務異常,權(quán)限不足等等。前端通過彈出提示信息的方式告訴用戶出了什么錯誤。 通常情況下我們用try…catch…對異常進行捕捉處理,但是在實際項目中對業(yè)務模塊進行異常捕捉,會造成代碼重復和繁雜, 我們希望代碼中只有

    2024年02月13日
    瀏覽(32)
  • SpringBoot+Vue實現(xiàn)校園二手系統(tǒng)。前后端分離技術【完整功能介紹+實現(xiàn)詳情+源碼】

    SpringBoot+Vue實現(xiàn)校園二手系統(tǒng)。前后端分離技術【完整功能介紹+實現(xiàn)詳情+源碼】

    全部源代碼地址 :傳送門 文章內(nèi)容有點長,建議打開右側(cè)目錄導航欄查看 。 ??????? 這個系統(tǒng)基本上可以改造為其它類似的系統(tǒng)。后臺管理基本上一致。前臺進行一些頁面樣式的改造就可以變成一個新的系統(tǒng)。有時間,做幾個變體系統(tǒng)。 ???????閑的無聊,把大學時候

    2024年02月07日
    瀏覽(26)
  • 若依RuoYi-Vue項目部署(前后端分離版本)

    若依RuoYi-Vue項目部署(前后端分離版本)

    RuoYi 是一個后臺管理系統(tǒng),基于經(jīng)典技術組合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的讓開發(fā)者注重專注業(yè)務,降低技術難度,從而節(jié)省人力成本,縮短項目周期,提高軟件安全質(zhì)量。 若依是作者給女兒取的名字(寓意:你若不離不棄,我必生死相依) 在線體驗 若

    2023年04月08日
    瀏覽(29)
  • 若依vue(前后端分離版本)前端獲取登錄用戶id

    若依vue(前后端分離版本)前端獲取登錄用戶id

    1.找到user.js 2.在user.js中找到以下幾個地方 屬性:state{} 屬性:mutations{} 函數(shù):GetInfo() 3.在user.js中添加代碼? 4.在自己的頁面中添加獲取id的代碼 在該若依的版本中,從下列目錄找到,ruoyi-ui-src-store-modules-user.js 屬性state在頁面中的位置 還有mutations 最后是GetInfo方法 步驟三 到此

    2024年04月12日
    瀏覽(94)
  • 基于springboot+vue+mysql的新能源充電系統(tǒng)--前后端分離(內(nèi)含源碼+報告+部署教程)

    基于springboot+vue+mysql的新能源充電系統(tǒng)--前后端分離(內(nèi)含源碼+報告+部署教程)

    新能源充電系統(tǒng)管理系統(tǒng)按照操作主體分為管理員和用戶。管理員的功能包括反饋管理、客服聊天管理、充電樁管理、充電樁預約管理、字典管理、新能源公告管理、用戶管理、管理員管理等,可以管理報修。用戶的功能包括管理部門以及部門崗位信息,管理充電樁信息,培

    2024年02月09日
    瀏覽(28)
  • 基于Java+SpringBoot+Vue.js前后端分離電腦購物商城系統(tǒng)設計和實現(xiàn) 可行性分析

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學生畢業(yè)設計教育和輔導。 所有項目都配有從入門到精通的基礎知識視頻課程,學習后應對畢業(yè)設計答辯。 項目配有對應開發(fā)文檔、

    2024年02月20日
    瀏覽(14)
  • 基于Java+SpringBoot+Vue.js前后端分離箱包購物商城系統(tǒng)設計和實現(xiàn) 可行性分析

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學生畢業(yè)設計教育和輔導。 所有項目都配有從入門到精通的基礎知識視頻課程,學習后應對畢業(yè)設計答辯。 項目配有對應開發(fā)文檔、

    2024年02月22日
    瀏覽(18)
  • 基于Java+SpringBoot+Vue.js前后端分離鞋子購物商城系統(tǒng)設計和實現(xiàn) 可行性分析

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學生畢業(yè)設計教育和輔導。 所有項目都配有從入門到精通的基礎知識視頻課程,學習后應對畢業(yè)設計答辯。 項目配有對應開發(fā)文檔、

    2024年02月20日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包