







關鍵詞:信息管理;選課管理;Spring Cloud微服務;SpringBoot技術;前后端分離
0 引言
在高校的日常教務管理工作中,學生信息管理是一項非常復雜的任務。管理者需要掌控學生從入學到畢業期間內的所有信息,包括個人資料、選課記錄、成績數據等[1]。其中,選課環節尤為關鍵,需要著力協調解決教室、教師和學生之間的互補問題,遵循資源最大化的原則[2],使每位學生能根據自己的意愿選擇心儀的課程,老師盡可能在規定的教室內完成授課。這一過程復雜性較高,約束條件也較多。借助信息化技術的升級改造,可以對傳統的學生信息管理方法進行優化,實現對學生從入學開始產生的所有數據信息的管理,優化教學資源配置,提高學生排課、選課的效率,探索高校學生信息管理的智能化建設。
目前,我國的高校基本上都在推進學生信息管理系統,允許學生通過系統對個人的所有信息進行管理,許多高校都已經在探討學生信息管理系統的實際建設[3]。袁愛平等人[4]已經在長沙民政職業技術學院中建設了高校信息管理系統,系統采用SSM框架編程實現,高效地收集、檢索和維護學生信息,但系統功能上僅維護了學生的基本信息,沒有納入學生的選課、成績等信息的管理,功能不夠完善。唐婷等人[5]借助大數據分布式系統搭建經驗,開發了基于大數據處理技術的學生管理信息系統,設計數據源層、數據存儲層、數據處理層、應用層,分別完成數據采集、數據存儲、數據挖掘、用戶交互和可視化功能,以期促進學生管理工作動態化、信息化、科學化發展,但系統功能較少,未能考慮因系統部分功能的修改導致系統無法正常使用的弊端。
截至目前,幾乎所有的學生信息管理系統都是基于單體應用開發,導致該類系統的前后端功能代碼都集中在一個項目中,在對該類系統進行功能、性能升級的時候,影響了整個系統的正常運行,極大影響了高校日常工作的正常運轉[6]。為了解決這一弊端,本文嘗試借助Spring Cloud微服務技術[7],將高校學生信息管理系統的功能拆分成相互耦合度極低的單體應用進行開發,借助Spring Cloud微服務提供的不同組件完成單體應用之間的通信與管理,協調完成系統的各項功能運轉,對單個單體應用的升級與改造將不會影響其他單體應用,持續為高校學生信息管理提供服務。同時,為了更加快捷地對系統進行運維升級,本文使用Docker容器技術將高校學生信息管理系統部署在阿里云服務器端。
1 系統需求分析
高校學生信息管理系統的使用角色包括三類:管理員、教師和學生,他們對高校學生信息管理系統的需求都不一樣,下面將詳細介紹3個角色對高校學生信息管理系統的需求,并使用需求分析用例圖的形式進行展現。
1.1 管理員需求分析
高校學生信息管理系統的管理員需要對整個大學期間學生產生的信息進行管理,管理的主要對象是教師、學生和課程3個實體,要能夠實現對這3個實體的增刪改查等基本操作,實現對教師、學生相關信息的有效管理,具體的需求分析用例圖如圖1所示。
1.2 教師需求分析
教師對高校學生信息管理系統的需求是要實現對個人信息的管理,查看學生選課信息并進行排課,查詢授課的選課學生信息,具體的需求分析用例圖如圖2所示。
1.3 學生需求分析
學生對于高校學生信息管理系統的需求是要能通過系統根據排課信息進行選課,具體細分是要能通過系統查看并修改個人的信息、查看帶課老師信息并進行選課、查看選課結果信息,退選已修選課,能夠滿足學生對于系統的需求,具體的需求分析用例圖如圖3所示。
2 系統詳細設計
2.1 Spring Cloud 微服務
高校學生信息管理系統借助Spring Cloud微服務框架將系統的功能拆分成4個單體功能應用,分別是系統管理、用戶管理、選課管理和成績管理,每一個應用再使用SpringBoot 的技術開發成一個獨立的微服務,也就是說每一個微服務提供一個功能單一的服務,比如用戶管理微服務就是對系統所有的用戶信息進行管理,包括管理員、教師和學生信息,對單個用戶信息的管理不影響其他單體應用功能的運行,各微服務之間通過Spring Cloud微服務框架提供的組件進行通信與協調合作,完成高校學生信息管理的全部功能[8]。
2.2 前后端分離技術
在開發系統管理、用戶管理、選課管理和成績管理的微服務過程中,每一個單體功能應用均使用了前后端分離開發技術,后端整合了Swagger框架[9],可以在網頁頁面中對系統的API接口功能進行實時測試;前端使用Vue.js技術編寫網頁頁面,前后端的數據交互采用Restful風格的接口,接口數據遵循JSON格式規范。這樣的技術選型優勢在于前后端的開發以及測試都是可以獨立進行的,后端接口的測試不再依賴前端項目的運行,前端項目的頁面編寫也無須等待后端接口開發完成。此外,在后端的項目框架中,還整合了MyBatis-Plus和MyBatis-Generator 組件,可以自動連接MySQL數據庫,實現對實體數據的操作和后端代碼的自動生成。單體功能微服務使用Shiro技術保證系統的安全,執行用戶的身份驗證、授權、加密和會話管理。
綜上所述,高校學生信息管理系統的整體技術框架圖如圖4所示。
2.3 Docker 容器部署技術
為了保證高校學生信息管理系統的高并發、易維護的性能需求,需要將系統部署在阿里云服務器端,系統的服務器資源配置為48核CPU處理器,基礎頻率為2.4GHz,內存容量為128GB,硬盤的容量為64TB,服務器的操作系統使用Linux,提供的網絡帶寬不低于3 210Gbps,能同時滿足200人在線同時使用。在對高校學生信息管理系統進行部署的過程中,采用Docker容器方式進行部署[10],將系統管理、用戶管理、選課管理和成績管理4個微服務打包成鏡像文件,推送至Docker容器中,執行部署的命令,即可快捷完成對微服務的部署工作。借助Docker容器的虛擬化部署技術,可以便捷實現對高校學生信息管理系統的改造和升級,當單個單體功能需要修改時,只需要對微服務功能進行代碼更改,重新打包推送至Docker容器中,即可實現系統的熱部署服務,系統無須中斷服務。
2.4 系統功能設計
高校學生信息管理系統針對管理員、教師和學生設計了不同的使用功能,管理員的功能包括學生信息管理、教師信息管理、課程信息管理和成績報表管理;教師的功能包括學生信息管理、我的課程管理、排課管理和選課成績管理;學生的功能包括課程管理、成績管理和個人信息管理,系統整體的功能框架圖如圖5所示。
3 系統功能實現
管理員可以對全部的學生信息進行增刪改查等操作,為了方便進行操作,將新增學生和對學生信息的修改、刪除操作進行了分離。在對學生進行新增的時候,需要提供學生的相關信息,這些信息包括:學號、年齡、姓名、身份證號、性別、密碼、專業、學院、班級等信息。在對學號進行驗證的時候,采用了正則表達式進行驗證,需要11位數字,否則視為無效的學號;身份證號也進行驗證,當檢驗學生信息無誤后,可以進行添加操作,將學生的信息添加進系統中,如圖6 所示。
對于學生信息可以進行修改和刪除操作,具體操作如圖7所示,可以查看所有學生的詳細信息。
學生可以在系統中進行選課,查看選課結果,退選相關課程,查看已修課程,管理個人信息系,如圖9 所示。
4 結束語
本文設計并實現了一款基于Spring Cloud微服務的高校學生信息管理系統。系統采用Spring Cloud微服務框架將功能劃分成系統管理、用戶管理、選課管理和成績管理4個單體微服務功能,每一個微服務功能使用SpringBoot技術進行實現。每個單體微服務功能都采用了前后端分離技術進行編程,后端整合了MyBatis-Plus、Swagger等組件,方便對邏輯處理程序進行編寫,便捷對MySQL數據庫進行操作;前端使用Vue.js技術對頁面進行編寫,前后端使用RESTful風格的JSON數據進行交互。單體微服務功能開發完畢后,使用Docker虛擬化技術進行部署,各微服務之間相互溝通協作,共同對外提供個人信息管理、選課管理、成績管理、課程管理等功能。這樣的技術選型有利于提高代碼功能的獨立性,減少不同功能之間的耦合,對單個微服務功能的升級與維護不會影響到系統功能的正常運轉,極大增加了系統的穩健性。