范洛書 李雪靖
基金項(xiàng)目:本文系黑龍江省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目“基于SpringBoot開發(fā)國內(nèi)租車網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)”(項(xiàng)目編號(hào):S202 210235075X)的研究分析。
【摘? 要】 基于SpringBoot軟件支持,為租車網(wǎng)站設(shè)計(jì)出的一套功能強(qiáng)、界面美觀、層次分明、互動(dòng)簡便的管理互動(dòng)系統(tǒng),可為人們的日常出行提供便利。系統(tǒng)后端基于Java匯編語言完成開發(fā),前端基于JavaScript、HTML、CSS等匯編語言完成開發(fā),框架采用SpringBoot、MyBatis等主流流行框架。系統(tǒng)實(shí)現(xiàn)了用戶注冊(cè)登錄模塊、首頁推薦模塊、自駕租車模塊、車型篩選模塊、租車網(wǎng)點(diǎn)模塊、精彩活動(dòng)模塊六大功能模塊。該系統(tǒng)模塊豐富多彩,網(wǎng)頁運(yùn)行順暢,為用戶提供便捷操作的同時(shí)更容易被新用戶迅速掌握和運(yùn)用。同時(shí)采用MySQL數(shù)據(jù)庫進(jìn)行文本數(shù)據(jù)處理,Redis緩存數(shù)據(jù),七牛云存儲(chǔ)系統(tǒng)海量車輛圖片,降低服務(wù)器壓力。該系統(tǒng)把過去租車的繁雜不便,辦理手續(xù)的操作繁瑣和還車的不便一一解決了,使租車變得高效,安全和簡便。
【關(guān)鍵詞】 JavaScript;SpringBoot;網(wǎng)站設(shè)計(jì);租車管理系統(tǒng)
一、系統(tǒng)有關(guān)技術(shù)
(一)Java語言
Java是一種編程語言。現(xiàn)在社會(huì)上有很多人都在研究Java,這說明它的受歡迎程度和實(shí)用性非常高。Java是太陽微系統(tǒng)公司1995年5月推出的高級(jí)程序設(shè)計(jì)語言。Java可以應(yīng)用于各種平臺(tái)上,是面向?qū)ο蟮木幊陶Z言,它吸收了C++編程語言所具有的諸多優(yōu)點(diǎn),摒棄了C++編程語言難以理解的多繼承、指針等概念。多態(tài)、繼承和封裝是Java所具有的三個(gè)主要功能。
(二)J2EE平臺(tái)
J2EE是太陽公司技術(shù)人員與眾多廠商共同定制并被廣泛接受的第一個(gè)工業(yè)標(biāo)準(zhǔn)版本,于1999年推出。JavaEE于2017年推出,歷時(shí)近20年。
(三)B/S架構(gòu)
隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,B/S架構(gòu)應(yīng)運(yùn)而生,它將瀏覽器和服務(wù)器有機(jī)地結(jié)合在一起,形成了一套高效的架構(gòu)體系。B/S架構(gòu)的最大優(yōu)點(diǎn)在于,用戶可以在任何時(shí)候輕松地使用它,無須安裝其他指定的軟件,從而實(shí)現(xiàn)隨時(shí)隨地地使用。同時(shí)也具有良好的擴(kuò)展性,可以根據(jù)需求靈活改變客戶端的大小。使用瀏覽器和網(wǎng)絡(luò),用戶即可輕松地進(jìn)行操作,無須任何煩瑣的操作。同時(shí)也避免了對(duì)服務(wù)器端硬件設(shè)備的依賴,減少了維護(hù)成本。在當(dāng)今社會(huì),桌面電腦上的Windows系統(tǒng)已經(jīng)占據(jù)了主要的地位,而瀏覽器則成為標(biāo)準(zhǔn)配置。此外,采用B/S架構(gòu)的系統(tǒng)完全不受C/S架構(gòu)對(duì)系統(tǒng)的一對(duì)一限制,這一突破極大地提高了系統(tǒng)的靈活性和適應(yīng)性。
(四)SpringBoot-MyBatis整合
1. Spring
Spring框架的設(shè)計(jì)初衷在于解決企業(yè)應(yīng)用程序開發(fā)中的復(fù)制性問題,而分層架構(gòu)則為用戶提供了一種靈活的組件選擇方式,從而成為框架的一大優(yōu)勢(shì)。它支持對(duì)應(yīng)用程序進(jìn)行模塊化設(shè)計(jì)并可以快速地將它們組合到一起形成新程序。Spring是一款輕量級(jí)的開源框架,其獨(dú)特之處在于它融合了控制反轉(zhuǎn)和面向切面編程的元素,為用戶提供了一種全新的編程體驗(yàn)。它能提供一種靈活的方法來處理復(fù)雜和動(dòng)態(tài)的系統(tǒng)。在J2EE系統(tǒng)中,Spring框架扮演著至關(guān)重要的角色,其地位舉足輕重。它能使開發(fā)者在開發(fā)應(yīng)用程序時(shí)能夠?qū)⒕Ψ旁谌绾翁岣叽a質(zhì)量上,從而有效地縮短程序的開發(fā)周期和降低開發(fā)成本。Spring框架有七大模塊。
2. Spring Boot
SpringBoot這個(gè)新框架上手并不難,但是達(dá)到熟練程度卻非常困難。SpringBoot旨在簡化Spring操作,Spring所具有的所有功能SpringBoot都具備。它的架構(gòu)風(fēng)格以微服務(wù)和服務(wù)為特色。其優(yōu)勢(shì)在于迅速創(chuàng)建并自主運(yùn)行Spring項(xiàng)目和整合主流框架、為嵌入式Servlet容器、打出jar包而不需要打出war包。具有自動(dòng)依賴和版本控制、無需配置海量xml、無代碼生成等功能,真正做到開箱即用。和云計(jì)算自然融合,預(yù)設(shè)優(yōu)干配置。
3. MyBatis
MyBatis本是阿帕奇公司的一個(gè)開源項(xiàng)目,叫iBatis。MyBatis支持自定義SQL,高級(jí)映射和存儲(chǔ)過程等卓越持久化框架以避免大量JDBC代碼和人工設(shè)置參數(shù)及得到結(jié)果集。也可被配置成利用本地映射接口和javaPOTOs映射數(shù)據(jù)庫記錄的簡單XML或者注釋。
二、系統(tǒng)分析
(一)系統(tǒng)市場(chǎng)可行性分析
在市場(chǎng)經(jīng)濟(jì)不斷壯大的今天,更多人開始選擇自由行,自由行往往會(huì)選擇租車自駕。由此帶動(dòng)了眾多投資者對(duì)汽車租賃行業(yè)的投資熱情。該系統(tǒng)能夠簡化租車公司租車流程,既利于業(yè)務(wù)操作又提供審計(jì)、管理等功能,從而保證了職工工作紀(jì)律。
(二)系統(tǒng)可操作性分析
市場(chǎng)經(jīng)濟(jì)的不斷發(fā)展對(duì)人們生活質(zhì)量提出了更高的要求,越來越多的人選擇自由行出行,而且多數(shù)人都會(huì)選擇本地租車自駕出行。于是更多投資者開始選擇開辦汽車出租公司。而且該系統(tǒng)確實(shí)可以使租車公司租車流程得到簡化。該系統(tǒng)既可以開展業(yè)務(wù),又是帶審核的管理系統(tǒng),可以使員工在工作中更有條理。
(三)系統(tǒng)主要功能需求分析
1. 系統(tǒng)業(yè)務(wù)
(1)后臺(tái)首頁:后臺(tái)首頁是系統(tǒng)管理者的操作入口。它應(yīng)提供系統(tǒng)的總體概覽,包括近期的活動(dòng)和關(guān)鍵指標(biāo)的展示。此頁面可能包含系統(tǒng)概況、重要通知、數(shù)據(jù)報(bào)表和快速導(dǎo)航鏈接,以便管理員快速獲取系統(tǒng)運(yùn)行狀態(tài)的總體情況。
(2)公告頁面:公告頁面用于發(fā)布重要的系統(tǒng)公告和通知。管理員可以在此發(fā)布關(guān)于系統(tǒng)更新、維護(hù)計(jì)劃、政策變更等信息,以便通知和與用戶互動(dòng)。用戶可以訪問該頁面以查看最新的公告。
(3)基礎(chǔ)管理:基礎(chǔ)管理部分包括對(duì)用戶、車輛和租車點(diǎn)等基礎(chǔ)數(shù)據(jù)的管理。管理員可以添加、編輯和刪除用戶賬戶,管理車輛信息包括車型、車牌號(hào)和狀態(tài),以及管理租車點(diǎn)的基本信息。這部分還包括對(duì)權(quán)限管理的支持,以確定哪些用戶具有管理權(quán)限。
(4)業(yè)務(wù)管理:業(yè)務(wù)管理部分關(guān)注租車業(yè)務(wù)的操作。管理員可以查看、審核和管理訂單,包括訂單的狀態(tài)、支付信息和車輛分配。此外,管理員可以手動(dòng)創(chuàng)建訂單,處理訂單的取消和退款請(qǐng)求。
(5)系統(tǒng)管理:系統(tǒng)管理部分包括對(duì)系統(tǒng)配置、安全設(shè)置和日志管理的管理。管理員可以配置系統(tǒng)參數(shù),如租車費(fèi)用、租車規(guī)則和支付設(shè)置。此外,他們可以管理用戶角色和權(quán)限,確保系統(tǒng)的安全性。還可以查看系統(tǒng)日志以進(jìn)行故障排除和監(jiān)視。
(6)統(tǒng)計(jì)分析:統(tǒng)計(jì)分析部分用于提供系統(tǒng)數(shù)據(jù)的可視化報(bào)表和分析。管理員可以查看訂單統(tǒng)計(jì)、收入報(bào)表、用戶活動(dòng)分析和庫存狀況等。這有助于系統(tǒng)管理員更好地了解業(yè)務(wù)運(yùn)行狀況,制定決策和優(yōu)化服務(wù)。
(7)注銷登錄:注銷登錄是系統(tǒng)安全性的一部分。管理員可以在完成管理任務(wù)后安全退出系統(tǒng),以防止未經(jīng)授權(quán)的訪問。
2. 系統(tǒng)處理邏輯
數(shù)據(jù)展示:JavaScript用ready方法向Ajax發(fā)出請(qǐng)求,后端返回Json格式。前端加載待顯示數(shù)據(jù)顯示。數(shù)據(jù)操作:對(duì)某些比較靈敏的操作前端要做好數(shù)據(jù)校驗(yàn)工作,校驗(yàn)成功后,發(fā)出Ajax請(qǐng)求由控制層再一次做出評(píng)判,評(píng)判成功后,呼叫Service層,Service層會(huì)呼叫Dao層用namespace查找相應(yīng)的mapper.xml來執(zhí)行SQL??刂茖訄?zhí)行日志操作并記錄用戶操作情況。
(四)系統(tǒng)流程設(shè)計(jì)
根據(jù)工程需要建立了與功能相應(yīng)的數(shù)據(jù)庫表。利用HTML對(duì)系統(tǒng)需要的界面進(jìn)行了編寫。HTMI作為全站框架。網(wǎng)站框架內(nèi)容部分采用書柜模板進(jìn)行裝修美化。采用div布局能夠極大地提高頁面加載的速度,多種瀏覽器都支持這種布局方式。從頁面的動(dòng)態(tài)效果來看jQuery渲染既讓頁面更簡潔漂亮,又提升用戶體驗(yàn)。從請(qǐng)求的角度來看,本課題主要采用了Ajax異步請(qǐng)求模式。Ajax采用異步JavaScript與XML技術(shù)相結(jié)合的方式,用戶可以在瀏覽器的訪問過程中異步更新。簡單來說就是在本地刷新。相對(duì)于傳統(tǒng)網(wǎng)頁而言,無須再加載完整的網(wǎng)頁界面來實(shí)現(xiàn)刷新。前后站數(shù)據(jù)交換采用Ajax與Json進(jìn)行交換。
三、系統(tǒng)設(shè)計(jì)
(一)系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
采用瀏覽器和服務(wù)器兩種模式,只需要用戶的操作系統(tǒng)來支持瀏覽器瀏覽即可,這樣使用率閾值有所下降。開發(fā)人員無需關(guān)注用戶操作系統(tǒng)這個(gè)平臺(tái),所以開發(fā)人員能夠關(guān)注邏輯開發(fā),而非項(xiàng)目部署。
瀏覽器和服務(wù)器兩種方式可以降低使用本系統(tǒng)企業(yè)的資金占用,企業(yè)只要為員工配置一臺(tái)有瀏覽器并聯(lián)網(wǎng)的計(jì)算機(jī)即可規(guī)范地使用,即使是平板和手機(jī)都可以兼容,企業(yè)經(jīng)營不需要開發(fā)本系統(tǒng)的人登門為本企業(yè)計(jì)算機(jī)安裝。這一經(jīng)濟(jì)模式對(duì)于企業(yè)的經(jīng)營十分有利。
由于本系統(tǒng)為公司內(nèi)部人員運(yùn)行,使用的網(wǎng)絡(luò)又為內(nèi)網(wǎng),網(wǎng)絡(luò)安全因此開發(fā)人員主要關(guān)注業(yè)務(wù)運(yùn)行,并對(duì)內(nèi)部人員的行為進(jìn)行控制和審計(jì)。
(二)系統(tǒng)數(shù)據(jù)關(guān)系設(shè)計(jì)
如果用戶之前沒有賬號(hào)的話,就需要先填寫賬號(hào)、輸入郵箱、輸入密碼和獲取郵箱驗(yàn)證碼來通過郵箱注冊(cè)的方式來完成注冊(cè)頁面。如果之前用戶就有賬號(hào)的話就可以直接進(jìn)入到“登錄頁面”的賬號(hào),在這個(gè)頁面,用戶可以通過“賬號(hào)登錄”和“郵箱登錄”的方式來完成登錄。基于Spring Boot的國內(nèi)租車網(wǎng)站的系統(tǒng)數(shù)據(jù)關(guān)系設(shè)計(jì)是一個(gè)關(guān)鍵的任務(wù),需要仔細(xì)考慮各個(gè)實(shí)體之間的關(guān)系,權(quán)限管理、數(shù)據(jù)一致性、性能和擴(kuò)展性等因素。通過合理的數(shù)據(jù)庫設(shè)計(jì),可以支持網(wǎng)站的各項(xiàng)功能和數(shù)據(jù)操作,確保系統(tǒng)的穩(wěn)定性和可擴(kuò)展性。
(三)系統(tǒng)數(shù)據(jù)表設(shè)計(jì)
相較于客戶端-服務(wù)器結(jié)構(gòu),瀏覽器-服務(wù)器結(jié)構(gòu)的優(yōu)越之處在于其能夠提供更加靈活、高效的數(shù)據(jù)傳輸和處理方式:為了確保租車系統(tǒng)中各個(gè)表間信息交互的安全性和可靠性,必須根據(jù)實(shí)體之間的屬性關(guān)系建立相應(yīng)的數(shù)據(jù)庫表,以保障模塊系統(tǒng)之間的協(xié)作。用部分租車系統(tǒng)數(shù)據(jù)表來說明,比如名稱為“userid”,類型屬于“int”,代表默認(rèn)值為“autoincrement”,而名稱為“l(fā)oginname”,類型則為“varchar”,代表的為用戶名。
四、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
通過對(duì)汽車租賃后端系統(tǒng)總需求的分析,在各模塊中分步實(shí)施。瀏覽器服務(wù)器采用三層設(shè)計(jì)的架構(gòu),調(diào)用系統(tǒng)Web層中的系統(tǒng)應(yīng)用程序?qū)咏缑婢帉憯?shù)據(jù)庫持久性的系統(tǒng)Web層,負(fù)責(zé)與用戶的交互。第一,用戶對(duì)不同功能的請(qǐng)求均在Web服務(wù)層完成,這可以大大減輕系統(tǒng)邏輯層的業(yè)務(wù)辦理壓力。第二,系統(tǒng)應(yīng)用程序服務(wù)層承擔(dān)著單點(diǎn)登錄業(yè)務(wù),退貨/退款邏輯,咨詢業(yè)務(wù)等與業(yè)務(wù)邏輯相關(guān)的工作。在整個(gè)項(xiàng)目的核心部分,設(shè)計(jì)業(yè)務(wù)流程并處理整個(gè)系統(tǒng)。第三,為系統(tǒng)數(shù)據(jù)服務(wù)層處理系統(tǒng)的相關(guān)數(shù)據(jù)操作,在該層與數(shù)據(jù)庫交互以使數(shù)據(jù)持久化。
五、結(jié)語
本系統(tǒng)設(shè)計(jì)時(shí),前期開發(fā)流程圖的設(shè)計(jì)以及對(duì)項(xiàng)目所覆蓋業(yè)務(wù)邏輯的梳理,都遇到較多難點(diǎn),通過翻查資料和互聯(lián)網(wǎng)材料庫,經(jīng)多次修改,擬定開發(fā)計(jì)劃,流程較為痛苦。進(jìn)入項(xiàng)目開發(fā)期后,選用當(dāng)前較為主流的開發(fā)工具與環(huán)境,便于自身開發(fā),同時(shí)為后續(xù)擴(kuò)展做鋪墊。該系統(tǒng)以傳統(tǒng)業(yè)務(wù)為基礎(chǔ),還進(jìn)行了自身的優(yōu)化與考慮,使租車功能更簡易化、智能化。項(xiàng)目開發(fā)時(shí),無論是梳理業(yè)務(wù)還是設(shè)計(jì)數(shù)據(jù)庫都鍛煉了思維能力,也使筆者懂得了思考事務(wù)是否全面、復(fù)雜是后期開發(fā)的重點(diǎn)。
本研究還開發(fā)學(xué)習(xí)了SpringBoot框架等當(dāng)前流行的主流技術(shù),使開發(fā)者可以僅僅關(guān)注業(yè)務(wù)邏輯編寫而不需要像過去一樣配置一堆內(nèi)容來提高開發(fā)效率。對(duì)很多開源API接口都有了一定的認(rèn)識(shí),使自己研發(fā)的系統(tǒng)變得更加完善、更加多姿多彩。采用緩存,認(rèn)為象基礎(chǔ)信息以及系統(tǒng)頻繁調(diào)用等方式都很適合置于緩存中,采用緩存來提升系統(tǒng)的運(yùn)行速度。
參考文獻(xiàn):
[1] 孟思明. 基于SpringBoot框架選購系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 中國設(shè)備工程,2023(11):94-95.
[2] 劉汀. 基于SpringBoot的微服務(wù)體系在企業(yè)信息管理系統(tǒng)中的應(yīng)用[J]. 信息技術(shù)與信息化,2023(05):23-26.
[3] 王振華. SpringBoot在教學(xué)效果評(píng)估系統(tǒng)中的應(yīng)用[J]. 電子技術(shù),2023,52(05):67-69.
[4] 李佳,吳菲,章毅恒. 基于SpringBoot+Vue的BOM表智能生成系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 現(xiàn)代信息科技,2023,7(09):184-188.
[5] 王明泉. 基于SpringBoot遠(yuǎn)程熱部署的探索和應(yīng)用[J]. 信息與電腦:理論版,2023,35(07):1-4.