陶瑜
關(guān)鍵詞:Java;Spring Boot; VUE; MySQI.;前后端完全分離
1研究背景
互聯(lián)網(wǎng)的便利已經(jīng)覆蓋了人們的衣食住行,特別是疫情的暴發(fā),信息化的管理尤其重要。在線考試系統(tǒng)可以充分發(fā)揮網(wǎng)絡(luò)優(yōu)勢(shì),一方面可以自己批改、算分、存檔考試成績(jī)等動(dòng)態(tài)管理各種考試信息,另一方面可以不受時(shí)間地域的限制,最大限度地提高閱卷速度,可以在考試結(jié)束時(shí)能夠客觀而又準(zhǔn)確地給出考試成績(jī),方便考試組織者工作的同時(shí)又有利于考生及時(shí)獲取考試成績(jī),無論是對(duì)于教學(xué)還是公司考核都高效便捷。
基于Spring Boot的前后端分離的在線考試系統(tǒng),通過建立大型及高效的題庫數(shù)據(jù),可以最大限度地發(fā)揮網(wǎng)絡(luò)優(yōu)勢(shì),以實(shí)現(xiàn)不限時(shí)間不限地域進(jìn)行考試。同時(shí)可以減少不必要的外界干擾.降低投入成本,并減少監(jiān)考老師的負(fù)擔(dān)以達(dá)到節(jié)約人力、物力、財(cái)力和不必要的自然資源浪費(fèi)的目的。
2系統(tǒng)整體結(jié)構(gòu)
本系統(tǒng)是基于Spring Boot的前后端分離的在線考試系統(tǒng),選擇以下技術(shù)方案:基于前后端完全分離模式,前端選用VUE,后端采用Java為應(yīng)用開發(fā)工具,持久化存儲(chǔ)選用MySQL為后臺(tái)數(shù)據(jù)庫,采用IntelliJIDEA作為開發(fā)平臺(tái),整個(gè)系統(tǒng)完全基于B/S( Browser/ Server)模式進(jìn)行設(shè)計(jì),軟件架構(gòu)風(fēng)格采用MVC( Model-View-Controller)架構(gòu)模式。
2.1系統(tǒng)總體目標(biāo)
(1)系統(tǒng)根據(jù)角色權(quán)限設(shè)計(jì),分為學(xué)生、教師、管理員三種角色。學(xué)生權(quán)限,包括參加考試和查看考試。教師權(quán)限,包括學(xué)生的所有權(quán)限及創(chuàng)建、編輯題目和創(chuàng)建、編輯考試。管理員權(quán)限,包括教師的所有權(quán)限及對(duì)用戶進(jìn)行管理。
(2)本考試系統(tǒng)可以替代傳統(tǒng)考試所有流程,包括題目的創(chuàng)建、更新,考場(chǎng)的創(chuàng)建、更新,參加考試,考試時(shí)間,閱卷及考試記錄查看等。
(3)利用當(dāng)前主流的存儲(chǔ)數(shù)據(jù)技術(shù),將考生相關(guān)信息、成績(jī)、試卷信息等數(shù)據(jù)持久化存儲(chǔ)到硬盤上。
(4)使用MD5加密存儲(chǔ)技術(shù),保障用戶信息的安全性。
2.2系統(tǒng)整體架構(gòu)
本系統(tǒng)是基于“Spring Boot+VUE”的架構(gòu)模式,采用前后端分離restful接口風(fēng)格來實(shí)現(xiàn)應(yīng)用程序在網(wǎng)絡(luò)上傳輸、接收信息。采用restful變成風(fēng)格,接受前端請(qǐng)求數(shù)據(jù),通常為json格式的數(shù)據(jù),再由服務(wù)器端對(duì)每個(gè)請(qǐng)求進(jìn)行分發(fā),與DB交互,通過信息的序列化,把相應(yīng)信息序列化后再信息流化,然后把數(shù)據(jù)返回給前端處理,實(shí)現(xiàn)兩者之間的數(shù)據(jù)通信。
2.3系統(tǒng)B/S結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的設(shè)計(jì)架構(gòu)基于B/S,即瀏覽器端和服務(wù)器端,瀏覽器端向服務(wù)器端發(fā)送數(shù)據(jù)請(qǐng)求,服務(wù)器端對(duì)發(fā)送的數(shù)據(jù)請(qǐng)求進(jìn)行分析和處理,作出相應(yīng)的控制,并與DB進(jìn)行交互。B/S結(jié)構(gòu)采取瀏覽器請(qǐng)求,服務(wù)器響應(yīng)的工作模式,可以通過瀏覽器對(duì)許多分布于網(wǎng)絡(luò)上的服務(wù)器進(jìn)行請(qǐng)求訪問,瀏覽器的請(qǐng)求通過服務(wù)器進(jìn)行處理,并將處理結(jié)果以及相應(yīng)的信息返回給瀏覽器,其他的數(shù)據(jù)加工、請(qǐng)求全部都是由Web Server完成的[1]。
B/S結(jié)構(gòu)是C/S架構(gòu)的一種改進(jìn),可以說屬于三層C/S架構(gòu),主要利用不斷成熟的WWW瀏覽器技術(shù),通過瀏覽器就可以實(shí)現(xiàn)原來需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)架構(gòu)技術(shù)[2]。三層C/S架構(gòu)圖如圖1所示。
3系統(tǒng)分層結(jié)構(gòu)
3.1系統(tǒng)整體分層結(jié)構(gòu)
本系統(tǒng)分層思路采用了三層C/S設(shè)計(jì)模式,系統(tǒng)的開發(fā)符合軟件工程的管理思想和面向?qū)ο蟮乃枷?,系統(tǒng)模式實(shí)現(xiàn)前后端完全分離,前端采用VUE漸進(jìn)式框架,后端由Spring Boot架構(gòu),由此對(duì)系統(tǒng)的程序代碼結(jié)構(gòu)進(jìn)行分層,分層策略圖如圖2所示。
3.2用戶登錄序列結(jié)構(gòu)
用戶在登錄時(shí)輸入自己的用戶名和密碼,Web端會(huì)將這些信息封裝起來執(zhí)行sendRequest()方法,該方法會(huì)將請(qǐng)求信息進(jìn)行序列化,通過網(wǎng)絡(luò)傳輸將請(qǐng)求數(shù)據(jù)發(fā)送給服務(wù)器端。服務(wù)器端獲取信息后根據(jù)請(qǐng)求URL,調(diào)用登錄(login())方法,登錄方法會(huì)查詢對(duì)應(yīng)的用戶數(shù)據(jù)庫,以校驗(yàn)用戶的登錄請(qǐng)求信息是否正確。若信息無誤就會(huì)給請(qǐng)求端返回一個(gè)用戶對(duì)象,則用戶可以成功登錄:若信息不正確就會(huì)提出用戶信息錯(cuò)誤,服務(wù)端拋出異常,則登錄失敗。用戶登錄序列結(jié)構(gòu)圖如圖3所示。
3.3開始考試序列結(jié)構(gòu)
考生進(jìn)入考試卡片列表后,選擇相應(yīng)的考試信息,系統(tǒng)會(huì)自動(dòng)獲取考生所選擇的考試信息,并將考試信息賦值給entityContext類去請(qǐng)求考試題目數(shù)據(jù)。獲取到考試題目信息后,將數(shù)據(jù)返回給前端進(jìn)行頁面渲染,組成考卷信息后,考試即可開始正式答題。用戶開戶考試序列結(jié)構(gòu)圖如圖4所示。
4系統(tǒng)設(shè)計(jì)
4.1系統(tǒng)功能結(jié)構(gòu)
基于Spring Boot前后端分離的在線考試系統(tǒng)可以直接通過瀏覽器端進(jìn)行操作。考生可以自主注冊(cè)為新用戶,登錄系統(tǒng)進(jìn)行考試,考試結(jié)束后即可查詢自己的成績(jī),同時(shí)可以支持個(gè)人信息的查詢和修改。教師登錄系統(tǒng)后可以對(duì)考生信息、題庫信息、考場(chǎng)信息進(jìn)行維護(hù)。系統(tǒng)總體通過前后端api調(diào)用,并與數(shù)據(jù)庫進(jìn)行交互,將數(shù)據(jù)響應(yīng)給前端瀏覽器。整個(gè)系統(tǒng)的結(jié)構(gòu)圖如圖5所示。
4.2用戶登錄模塊
對(duì)于初次使用本系統(tǒng)的用戶,需要先進(jìn)行注冊(cè)操作。注冊(cè)成功后,進(jìn)入登錄界面,輸入正確的用戶名和密碼,則登錄成功,可進(jìn)入本考試系統(tǒng),進(jìn)行相關(guān)操作。比如,用戶登錄成功,主界面數(shù)據(jù)自動(dòng)更新。
4.3考試主界面模塊
考生登錄到主界面后,系統(tǒng)會(huì)根據(jù)考生信息自動(dòng)提取試題及考試記錄等信息??忌M(jìn)入主界面,可以在考試卡片選項(xiàng)上選擇相應(yīng)的考試科目進(jìn)行考試,考試主界面如圖6所示。
當(dāng)考生選擇相應(yīng)的考試科目之后,點(diǎn)擊“開始考試”按鈕,系統(tǒng)會(huì)自動(dòng)從數(shù)據(jù)庫中獲取相應(yīng)科目的考題并隨機(jī)生成考卷。
考試結(jié)束,考生點(diǎn)擊交卷按鈕,系統(tǒng)會(huì)自動(dòng)評(píng)閱.并生成評(píng)閱反饋信息,考生可以在我的考試中查看相關(guān)反饋信息。其中,主要代碼與注釋如下。
4.4個(gè)人信息模塊
在主界面,用戶可以點(diǎn)擊賬戶設(shè)置,進(jìn)入個(gè)人信息窗口,可以查看當(dāng)前用戶的信息及進(jìn)行修改密碼操作。用戶填寫完相關(guān)個(gè)人信息后,當(dāng)前新填寫的信息會(huì)覆蓋以前舊的信息,用戶可以根據(jù)系統(tǒng)提示進(jìn)行相應(yīng)的修改操作。
4.5教師功能模塊
教師登錄該系統(tǒng)后,頁面會(huì)多出兩個(gè)選項(xiàng):?jiǎn)栴}管理是用于創(chuàng)建開始考試試題,可以按照問題內(nèi)容、問題分類、問題選項(xiàng)進(jìn)行創(chuàng)建試題;考試管理則是安排考試任務(wù)功能,點(diǎn)擊新建按鈕,可以輸入考試相關(guān)信息,如考試名稱、考試限時(shí)、考場(chǎng)簡(jiǎn)述、每題分?jǐn)?shù)、選擇關(guān)聯(lián)題目等。
5結(jié)束語
基于Spring Boot的前后端分離的在線考試系統(tǒng),初衷是開發(fā)一個(gè)易于管理和維護(hù)的教學(xué)考試系統(tǒng),能夠滿足學(xué)?;蚱髽I(yè)多門課程、難易程度多樣的考核要求。本系統(tǒng)采用前后端分離技術(shù),前端使用的是VUE,后端使用的是Spring Boot框架,之所以選用這兩種語言,是為了以后的業(yè)務(wù)擴(kuò)展能夠得到很好的維護(hù)。在開發(fā)的過程中,參考了MVC軟件架構(gòu)的設(shè)計(jì)思想,采用動(dòng)態(tài)的程序設(shè)計(jì)理念,使后續(xù)業(yè)務(wù)擴(kuò)展可以簡(jiǎn)化程序,提高開發(fā)效率。