王偉勍
摘要:該文介紹了一種基于Spring框架設(shè)計(jì)實(shí)現(xiàn)的教學(xué)管理系統(tǒng)。該系統(tǒng)在后端使用成熟的Spring框架集成Redis與MySQL數(shù)據(jù)庫接口,與前端頁面進(jìn)行可跨域的JSON數(shù)據(jù)交互,進(jìn)而實(shí)現(xiàn)不同身份角色的登錄權(quán)限驗(yàn)證、表單的申請與審批、成績錄入與審批、工資條明細(xì)展示、教學(xué)資產(chǎn)登記與報(bào)修等功能,從而滿足一般的教學(xué)管理要求。
關(guān)鍵詞:Spring框架; 教學(xué)管理; JSON數(shù)據(jù); 應(yīng)用軟件
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)11-0069-02
1 引言
現(xiàn)代學(xué)校的教學(xué)管理已經(jīng)逐步擺脫了傳統(tǒng)的單純依靠教學(xué)秘書、教師、輔導(dǎo)員等教職工結(jié)合少量學(xué)生干部對廣大學(xué)生進(jìn)行組織規(guī)制的方式,隨著社會(huì)節(jié)奏的加快與教師、學(xué)生社會(huì)身份的多元化,尤其在此次新冠肺炎疫情的影響下,線上線下相結(jié)合的教學(xué)方式已經(jīng)成為當(dāng)前解決教學(xué)管理問題的主流思路。此外,學(xué)生在教學(xué)過程中的參與程度和主動(dòng)性正在大幅提高,典型的如翻轉(zhuǎn)課堂、借取場地組織活動(dòng)、報(bào)修宿舍用品等;同時(shí),教職工在進(jìn)行教學(xué)管理的過程中經(jīng)常會(huì)遭遇如教具損壞或過于陳舊、科研教研項(xiàng)目申請不能及時(shí)得到審批、因人事和檔案關(guān)系變動(dòng)造成的待遇變動(dòng)等情況,以上問題無疑給教學(xué)管理帶來了新的挑戰(zhàn)。
為嘗試解決這些關(guān)乎教職工和學(xué)生切身利益的問題,本文設(shè)計(jì)并實(shí)現(xiàn)了一款基于Spring框架的教學(xué)管理系統(tǒng),充分借鑒了現(xiàn)代企業(yè)管理中常用的OA辦公系統(tǒng),將需要領(lǐng)導(dǎo)參與的事務(wù)抽象為表單的申請與審批流程,這樣后端系統(tǒng)便能根據(jù)表單屬性和領(lǐng)導(dǎo)對應(yīng)的身份角色自動(dòng)將表單送達(dá)至相關(guān)領(lǐng)導(dǎo),大大縮減了相關(guān)事務(wù)的處理時(shí)間。此外,本系統(tǒng)還將常見的學(xué)生成績錄入與審批、工資條明細(xì)展示等功能融入進(jìn)來,力圖使系統(tǒng)更加完備。
2 基本結(jié)構(gòu)
設(shè)計(jì)開發(fā)中使用的工具軟件為Eclipse。應(yīng)用Spring框架的集成能力,結(jié)合Security模塊的權(quán)限驗(yàn)證功能、Redis的內(nèi)存級(jí)高速緩存功能與MySQL的快速持久化功能,在實(shí)現(xiàn)設(shè)計(jì)功能的同時(shí)使系統(tǒng)具有初步的抗高并發(fā)訪問能力。
前端頁面使用Vue3.0技術(shù)開發(fā),設(shè)計(jì)五個(gè)主要頁面,對應(yīng)登錄與退出、表單的申請與審批、成績錄入與審批、工資條明細(xì)展示、教學(xué)資產(chǎn)登記與報(bào)修等五個(gè)主要功能,用戶可根據(jù)需要,在登錄后切換功能頁面。
后端程序?qū)?yīng)功能頁面進(jìn)行模塊式開發(fā),Security模塊對應(yīng)登錄與退出頁面,結(jié)合CAS工具包實(shí)現(xiàn)用戶的單點(diǎn)登錄。登錄到系統(tǒng)內(nèi)部后,用戶會(huì)獲得對應(yīng)的身份令牌,并根據(jù)令牌信息判別相應(yīng)權(quán)限,如學(xué)生的身份令牌只能填寫申請教室的表單或報(bào)修宿舍設(shè)施,而教師則在此基礎(chǔ)上又可以進(jìn)行成績錄入、查看工資條等操作。而一旦用戶點(diǎn)擊退出按鈕,后端程序立即在Redis緩存中清除相應(yīng)的令牌信息,以此禁止未登錄用戶的操作。
對其他四個(gè)功能頁面,首先將后端程序劃分為REST、Service和Dao三個(gè)層次,并按相應(yīng)功能在三個(gè)層次中劃分出對應(yīng)的功能模塊,從而完成模塊式開發(fā)。從層次的角度上看,REST層直接與前端頁面交互,但在交互過程中需要調(diào)用Service層進(jìn)行數(shù)據(jù)的具體處理,而后者則要調(diào)用Dao層獲取具體數(shù)據(jù)。綜上,系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
3 程序設(shè)計(jì)簡述
3.1 數(shù)據(jù)庫表設(shè)計(jì)
根據(jù)面向?qū)ο蟮某绦蛟O(shè)計(jì)思路,將教職工與學(xué)生統(tǒng)一抽象為用戶類,有用戶名、密碼、姓名、年齡、性別、身份、權(quán)限等屬性。在處理具體業(yè)務(wù)時(shí),根據(jù)身份、權(quán)限等屬性確定與之關(guān)聯(lián)的數(shù)據(jù)庫表,由此實(shí)現(xiàn)不同功能。簡要的數(shù)據(jù)庫表關(guān)系如圖2所示。
3.2 Security模塊
使用Spring開源代碼中的Security工具包構(gòu)建一連串過濾器鏈,包裹在SpringMVC核心外部,并利用配置文件和Authentication Filter等過濾器類對來訪用戶進(jìn)行身份認(rèn)定和鑒權(quán),并提供登錄和登出功能。
當(dāng)用戶執(zhí)行登錄操作時(shí),Security模塊會(huì)根據(jù)用戶名和密碼到用戶表中查詢是否存在及正確,從而判斷是否通過驗(yàn)證。如果通過則在Redis緩存中存入一個(gè)專屬令牌(Token),并將此令牌交互給前端頁面存入Cookie,后續(xù)操作僅驗(yàn)證令牌值是否正確或過期,從而省去重復(fù)查詢MySQL數(shù)據(jù)庫的過程,提高響應(yīng)效率。
3.3 REST層
REST是表述性狀態(tài)傳遞的英文單詞縮寫,其本質(zhì)是一種軟件編程風(fēng)格,本文使用根據(jù)其開發(fā)的JSON數(shù)據(jù)格式實(shí)現(xiàn)前后端數(shù)據(jù)交互。接到前端的數(shù)據(jù)請求后,REST層中的相應(yīng)接口會(huì)解析出具體的數(shù)據(jù)要求,而后調(diào)用Service層中的服務(wù)方法,得到已經(jīng)按結(jié)構(gòu)要求封裝的數(shù)據(jù),而后REST接口將其重新轉(zhuǎn)換為JSON數(shù)據(jù),回傳給前端頁面。
3.4 Service層
在接到REST層的數(shù)據(jù)請求后,Service層中的方法會(huì)根據(jù)業(yè)務(wù)邏輯和所給參數(shù)調(diào)用Dao層中的接口,對MySQL數(shù)據(jù)庫中的庫表進(jìn)行增刪改查操作。得到返回值后,相應(yīng)的服務(wù)方法會(huì)對數(shù)據(jù)進(jìn)行排序、拼裝、格式轉(zhuǎn)換等處理,最終將結(jié)果返回給REST層,完成一次調(diào)用。
3.5 Dao層
Dao實(shí)際上是數(shù)據(jù)訪問對象的英文簡稱,設(shè)計(jì)此層的目的是封裝對數(shù)據(jù)庫的訪問操作,從而與具體的業(yè)務(wù)邏輯區(qū)分開。本文使用MyBatis工具包將MySQL數(shù)據(jù)庫抽象封裝為可供Spring框架調(diào)用的類和方法,并將驅(qū)動(dòng)、連接、關(guān)閉和操作數(shù)據(jù)庫的SQL代碼改造為可替換參數(shù)的動(dòng)態(tài)語句,從而提高訪問效率、降低訪問錯(cuò)誤。
4 各界面簡述
4.1 登錄界面
登錄界面采用響應(yīng)式布局,包含用戶名、密碼和驗(yàn)證碼的輸入文本框,注冊和登錄按鈕,以及可供勾選的記住密碼選項(xiàng)框。
4.2 表單申請與審批界面
該界面包含事假、項(xiàng)目經(jīng)費(fèi)、差旅報(bào)銷等常用的十三項(xiàng)申請表單,以及一項(xiàng)自定義表單。在頁面中部采用組件列表的形式展示已申請表單的審批進(jìn)度。對于相關(guān)審批人員,接到表單后,會(huì)在頁面右上角進(jìn)行表單數(shù)量提示。
4.3 成績錄入與審批
該界面主要提供下轄學(xué)生的詳細(xì)列表,并可按專業(yè)、班級(jí)、科目等類別進(jìn)行統(tǒng)計(jì)展示,以及學(xué)生成績的線上和Excel模板上傳兩種錄入方式。頁面下側(cè)對教學(xué)秘書和院系領(lǐng)導(dǎo)提供成績修改與確認(rèn)按鈕。
4.4 工資條明細(xì)
該界面主要展示當(dāng)前教職工自入職以來的工資明細(xì)情況,并提供Excel文件下載。
4.5 教學(xué)資產(chǎn)登記與報(bào)修
該界面對后勤人員展示現(xiàn)有教學(xué)資產(chǎn)的明細(xì)情況,對已報(bào)修的資產(chǎn),可進(jìn)一步展示修理進(jìn)度。對教師、輔導(dǎo)員、學(xué)生等提供報(bào)修選項(xiàng),供其填寫報(bào)修資產(chǎn)的損壞情況。
5 結(jié)束語
本文研究設(shè)計(jì)的基于Spring框架的教學(xué)管理系統(tǒng)采用了當(dāng)前主流的前后端分離的設(shè)計(jì)方法,使用Spring框架集成Security、CAS、MyBatis等工具包實(shí)現(xiàn)單點(diǎn)登錄、數(shù)據(jù)庫操作、數(shù)據(jù)緩存等操作,從而完成能夠提供JSON數(shù)據(jù)服務(wù)的后端程序開發(fā)。對于前端頁面,本文采用流行的Vue3.0技術(shù)進(jìn)行開發(fā),設(shè)計(jì)了五個(gè)主要頁面,從而實(shí)現(xiàn)登錄與退出、表單的申請與審批、成績錄入與審批、工資條明細(xì)展示、教學(xué)資產(chǎn)登記與報(bào)修等五個(gè)主要功能。
當(dāng)然,本系統(tǒng)在設(shè)計(jì)上仍然存在一定缺陷,在使用Python腳本進(jìn)行高并發(fā)訪問測試時(shí)發(fā)現(xiàn)系統(tǒng)對大流量訪問的響應(yīng)仍不理想,前端界面相對于主流OA系統(tǒng)也稍顯簡陋。但根據(jù)目前的調(diào)研結(jié)果,在本系統(tǒng)的基礎(chǔ)上進(jìn)行界面和高并發(fā)性能上的優(yōu)化,并根據(jù)用戶體驗(yàn)做進(jìn)一步調(diào)整后,相信能夠取得更大的應(yīng)用價(jià)值。
參考文獻(xiàn):
[1] 閆海發(fā),閆楠,郭亞川,等.基于機(jī)智云物聯(lián)網(wǎng)智能家居系統(tǒng)[J].電子世界,2018(2):8-10.
[2] 李文杰.基于SSM框架的高校信息采集與管理系統(tǒng)[J].信息記錄材料,2019,20(10):144-145.
[3] 潘承昌,吳戀,劉遠(yuǎn)珍,等.基于SSM的商品智能推薦系統(tǒng)的開發(fā)研究[J].物聯(lián)網(wǎng)技術(shù),2018,8(7):73-75,77.
[4] 馮傳波,彭章友,張鐘浩.基于Vue.js的移動(dòng)應(yīng)用可視化平臺(tái)的研究[J].工業(yè)控制計(jì)算機(jī),2019,32(5):102-103.
[5] 朱二華.基于Vue.js的Web前端應(yīng)用研究[J].科技與創(chuàng)新,2017(20):119-121.
[6] 柴青山.基于MVVM模式的Vue.js框架在物流軟件自動(dòng)化測試系統(tǒng)中的應(yīng)用研究[D].北京:北京郵電大學(xué),2019.
【通聯(lián)編輯:李雅琪】