《基于Spring Boot的筆記平臺設(shè)計(jì)》10000字_第1頁
《基于Spring Boot的筆記平臺設(shè)計(jì)》10000字_第2頁
《基于Spring Boot的筆記平臺設(shè)計(jì)》10000字_第3頁
《基于Spring Boot的筆記平臺設(shè)計(jì)》10000字_第4頁
《基于Spring Boot的筆記平臺設(shè)計(jì)》10000字_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于SpringBoot的筆記平臺設(shè)計(jì)摘要基于springboot的筆記平臺設(shè)計(jì)和實(shí)現(xiàn)旨在通過web相關(guān)技術(shù)來實(shí)現(xiàn)云化記筆記、寫日記、查看待辦。實(shí)現(xiàn)手機(jī)和電腦等終端互聯(lián),擺脫單終端丟失導(dǎo)致內(nèi)容丟失的痛點(diǎn),提高筆記、日記等信息的留存率。另通過圖表的形式統(tǒng)計(jì)筆記日記等情況,給用戶提供直觀的自身數(shù)據(jù)參考價(jià)值。平臺設(shè)計(jì)采納Javaweb為干流的開發(fā)框架,將springboot開發(fā)后端運(yùn)用,vuejs前端框架開發(fā)前端應(yīng)用,運(yùn)用主流ui框架AntDesign,提高頁面的開發(fā)效率,與此同時(shí)并有效的提高了界面的友好度;其中增加了rabbitMQ消息隊(duì)列和redis緩存數(shù)據(jù)庫相關(guān)技術(shù)這樣做就是來保證數(shù)據(jù)安全的統(tǒng)一,運(yùn)用了redis緩存高速讀取的特點(diǎn),提高響應(yīng)的時(shí)間,增強(qiáng)用戶體驗(yàn)感。在設(shè)計(jì)中,平臺實(shí)現(xiàn)了記筆記、寫日記、個(gè)人待辦、天氣概覽、個(gè)人設(shè)置、個(gè)性簽名等功能,另外在筆記功能中,提供了標(biāo)簽功能,可為筆記貼上筆記標(biāo)簽,系統(tǒng)可自動(dòng)在最熱的100個(gè)標(biāo)簽隨機(jī)推薦三個(gè)標(biāo)簽以供選擇。筆記平臺的設(shè)計(jì)實(shí)現(xiàn)除為用戶提供筆記功能外,還在筆記、日記和待辦等數(shù)據(jù)內(nèi)容的不斷增加,為后續(xù)創(chuàng)建數(shù)據(jù)倉庫和大數(shù)據(jù)的分析提供了有力的支持,在大數(shù)據(jù)時(shí)代,可以在用戶的使用數(shù)據(jù)中分析出對用戶更加有價(jià)值的參考數(shù)據(jù),例如:用戶在記錄學(xué)習(xí)筆記時(shí),還可以為用戶推薦更有力的學(xué)習(xí)方向。關(guān)鍵詞:前后端分離;Java;vue.js目錄1.引言1.1課題研究的背景和意義 11.2課題設(shè)計(jì)主要內(nèi)容 12.相關(guān)技術(shù)與開發(fā)2.1相關(guān)開發(fā)技術(shù)簡介 22.2.1前端相關(guān)技術(shù)簡介 22.2.2后端相關(guān)技術(shù)簡介 32.2開發(fā)過程使用開發(fā)的工具簡介 43.系統(tǒng)可行性需求分析3.1系統(tǒng)可行性以及優(yōu)缺點(diǎn) 53.2需求分析 54.系統(tǒng)設(shè)計(jì)4.1MYSQL數(shù)據(jù)庫設(shè)計(jì) 64.2REDIS緩存的引用 114.3系統(tǒng)設(shè)計(jì) 114.3.1系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖 114.3.2系統(tǒng)詳細(xì)設(shè)計(jì)解析 115.系統(tǒng)實(shí)現(xiàn)5.1登錄攔截器實(shí)現(xiàn) 125.2攔截不安全的請求方式 145.3NGINX代理的實(shí)現(xiàn) 155.4獲取當(dāng)前最熱標(biāo)簽 165.5健康指數(shù) 175.6應(yīng)用部署到云服務(wù)器上 206.系統(tǒng)功能測試6.1賬戶登錄測試 216.2個(gè)人資料修改測試 226.3各項(xiàng)功能測試 237.結(jié)束語 29附錄一:參考文獻(xiàn) 30附錄二:參考程序 31引言1.1課題研究背景和意義在這個(gè)經(jīng)濟(jì)快速發(fā)展的年代網(wǎng)絡(luò)科學(xué)技術(shù)日益提高,在每日高強(qiáng)度的三點(diǎn)一線工作制度中,身體上壓力越來越大的同時(shí)心理與大腦的壓力也在逐步提高面對每天的工作的工作量而產(chǎn)生的壓力,在處理中總是顯得心有余而力不足。在課堂學(xué)習(xí)中幾乎都都需要將筆和紙隨時(shí)帶在身邊并將重點(diǎn)需要記錄的東西記錄下來甚至有的時(shí)候,筆記本和日記本總是容易被遺忘在不起眼的角落。在數(shù)據(jù)高速交互的信息時(shí)代,是否可以通過另一種形式來取代傳統(tǒng)紙質(zhì)的筆記本和日記本,這正是我此次課題研究的目的,相對于紙質(zhì)筆記本的缺點(diǎn)不僅浪費(fèi)了過多的樹木還不環(huán)保而且容量還是有限的從而設(shè)計(jì)一款應(yīng)用型網(wǎng)站日記本就有實(shí)際意義,其具備以下優(yōu)點(diǎn):安全性。若單純?yōu)榱吮4婧陀涗浀脑?,在這個(gè)信息化時(shí)代已經(jīng)有很多app是可以做到的,就像朋友圈可以記錄生活,微博可以分享新鮮事。但是現(xiàn)在我個(gè)人認(rèn)為保密和安全性才是最重要的。這個(gè)平臺首先操作不是很復(fù)雜,界面作風(fēng)簡約。寫東西的時(shí)候心情和靈感很重要,用手機(jī)和電腦來代替筆記本節(jié)省時(shí)間的同時(shí)也提高了工作效率。而且操作起來簡單上手,給予用戶直觀體驗(yàn),還設(shè)置了平臺密碼,既提供了方便又保證了安全性。永久保存。記載的內(nèi)容能夠永恒保留,不必?fù)?dān)心丟失,并且日記列表是時(shí)間軸樣式的,方便瀏覽和查閱。近幾年已步入信息時(shí)代,我們已經(jīng)逐漸把線下的活動(dòng)轉(zhuǎn)到線上可是即便這樣,隨時(shí)隨地的不管是用手機(jī)還是用電腦都可以查找到我們之前所記錄的東西。分類。分為待辦,日記和學(xué)習(xí)筆記。各記所需,可以把不同的想記錄的事情做到分類其次也方便了每次記錄點(diǎn)不同。另外還設(shè)有天氣預(yù)報(bào)這一欄記錄當(dāng)天心情如何的時(shí)候也可以同時(shí)查看天氣,還提供了標(biāo)簽功能,可為筆記貼上筆記標(biāo)簽,系統(tǒng)可自動(dòng)在最熱的100個(gè)標(biāo)簽隨機(jī)推薦三個(gè)標(biāo)簽以供選擇。1.2課題設(shè)計(jì)主要內(nèi)容本次課題設(shè)計(jì)的主要內(nèi)容分為五個(gè)部分分別為控制臺,待辦事件,日記,學(xué)習(xí)中心,個(gè)人設(shè)置??刂婆_基本功能:控制臺即為工作臺,工作臺中有你的賬戶名稱個(gè)性職位及個(gè)性簽名,工作臺可以展示的內(nèi)容為登陸的天數(shù)筆記的數(shù)目和日記的數(shù)目分別采用柱形圖清晰地展現(xiàn)在眼前,在下方還有近幾天的天氣概況。待辦事件基本功能:增加待辦和刪除都可以展示在控制臺,但是待辦唯一的缺點(diǎn)就是需要手動(dòng)開始和結(jié)束,并且增加一次都需要刷新一下頁面才可以展現(xiàn)出來。日記基本功能:每日記錄日記以后均可在控制臺看到柱狀圖的改變,日記中心也設(shè)有個(gè)性簽名,而且一開始看到的就是標(biāo)題和主題點(diǎn)擊查看內(nèi)容就可以看到日記的主要內(nèi)容學(xué)習(xí)中心基本功能:學(xué)習(xí)中心可以記錄學(xué)習(xí)筆記,學(xué)習(xí)筆記設(shè)有標(biāo)簽功能可為筆記貼上筆記標(biāo)簽,系統(tǒng)可自動(dòng)在最熱的100個(gè)標(biāo)簽隨機(jī)推薦三個(gè)提供選擇。個(gè)人設(shè)置基本功能:用戶可以通過手機(jī)號注冊來創(chuàng)建賬號登錄平臺,基本設(shè)置里可以更改昵稱身份和個(gè)性簽名完善個(gè)人信息,安全設(shè)置可以更改密碼。相關(guān)技術(shù)與開發(fā)工具2.1相關(guān)開發(fā)技術(shù)簡介2.1.1前端相關(guān)技術(shù)簡介HTML和CSS:可以創(chuàng)建WEB的最主要的技術(shù)就是HTML和CSS。HTML為各種設(shè)施提供頁面的構(gòu)造,為CSS提供(視覺和聽覺的)規(guī)劃。將圖形和腳本一同,HTML和CSS是構(gòu)建網(wǎng)頁和

Web應(yīng)用程序的根基。HTML是網(wǎng)頁的本質(zhì),網(wǎng)頁的本質(zhì)是文本文件,它可以告訴瀏覽器應(yīng)該怎樣去現(xiàn)實(shí)文本的內(nèi)容,并且它包含了一系列標(biāo)簽。HTML的編寫唯一能夠判斷代碼錯(cuò)誤的位置和原因就是通過頁面展示出來的效果和期望中的差距。通過CSS對頁面排版和樣式的控制,可以展現(xiàn)出更精美和炫彩的頁面。是Web網(wǎng)站建設(shè)不可或缺的一部分。vue+axios:vue.js是一個(gè)用于創(chuàng)建用戶界面的一種漸進(jìn)式框架。這個(gè)框架與其他框架大有不同。旨在更好地組織與簡化Web開發(fā),Vue設(shè)計(jì)的最初理念是從最低端向上增量開發(fā)。它核心庫里只需關(guān)注視圖層,會(huì)與其它庫亦或者和其他已有項(xiàng)目整合。Vue.js的目的就是將最簡單化的API實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。這是vue和JavaScript的組別,vue可以當(dāng)作是一個(gè)JavaScript庫來使用,在vue中可以更快速簡單的開發(fā)頁面。并且在編譯完成后會(huì)自動(dòng)生成html+JavaScript內(nèi)容。AntDesign前端ui框架:AntDesignforvue是當(dāng)下比較流行的一款ui框架,由阿里巴巴團(tuán)隊(duì)維護(hù)。使用AntDesign框架可以快速開發(fā)出友好的界面,大大提高開發(fā)的效率,另外它豐富的ui組件有很好的交互效果,例如圖表的展示和按鈕的點(diǎn)擊以及對話框的彈出和淡入。2.1.2后端相關(guān)技術(shù)簡介Java-計(jì)算機(jī)編程語言:Java是對于對象的編程語言,吸取很多c++的優(yōu)點(diǎn),拋棄了c++中不容易吸收的一些概念,去之糟泊系之精華,比如多繼承、指針的概念。因此強(qiáng)大的功能和容易操作就是Java獨(dú)有的特征。同時(shí),Java也是如今用于最廣泛的開發(fā)語言,Java程序不但能夠在Linux中運(yùn)作起來,而且可以在window系統(tǒng)中運(yùn)行。Java程序可以在Java的虛擬機(jī)中運(yùn)行就是其可以橫跨系統(tǒng)的因素。所以只要安置好Java運(yùn)行所需要的環(huán)境就可以將寫好的程序運(yùn)行起來。Springboot開發(fā)框架:如今最主流的Javaweb開發(fā)框架就是SpringBoot了,運(yùn)用SpringBoot框架能夠不需要安裝tomact(中間件),在它內(nèi)部的tomcat以及servlet容器是可以單獨(dú)完成運(yùn)行。其中在使用springboot時(shí)遵循默認(rèn)大于配置??梢元?dú)立創(chuàng)建Spring的應(yīng)用程序還可以快速的搭建開發(fā)環(huán)境,是快速開發(fā)的首選框架。Springboot框架中其實(shí)還有兩個(gè)很重要的策略一是開箱即用和約定優(yōu)于配置。另一個(gè)就是約定優(yōu)于配置。Redis緩存數(shù)據(jù)庫:數(shù)據(jù)庫在一般情況下是將數(shù)據(jù)儲存在硬盤當(dāng)中,內(nèi)存的運(yùn)行速度遠(yuǎn)大于讀取。所以在高度運(yùn)行的情況下,傳統(tǒng)數(shù)據(jù)庫往往就會(huì)顯得非常脆弱,卡頓與此同時(shí)就會(huì)導(dǎo)致系統(tǒng)崩盤。能解決這個(gè)問題的根本就是——用c語言編寫的,可以支持網(wǎng)絡(luò)的Redis。Redis單線程形式的緩存數(shù)據(jù)庫。Redis將數(shù)據(jù)存儲在內(nèi)存中,性能超高。將redis用作存放高熱點(diǎn)查詢的數(shù)據(jù),很明顯的將MySQL地壓力得以降低。以便于提升訪問效率。Nginx負(fù)載均衡:在一般單體結(jié)構(gòu)中存在許多缺點(diǎn)。舉個(gè)例子:沒有負(fù)載均衡,就沒有沒有nginx假如有一個(gè)人你要做100件事,你1秒只能做完10件事,這樣你就要10秒才能做完,有nginx他就可以把這100件事分成10份給10個(gè)你去做1秒就做完,相當(dāng)于節(jié)省時(shí)間只是增加人力成本。傳統(tǒng)的系統(tǒng)就有弊端例如:系統(tǒng)承載量肯定是一個(gè)固定的數(shù)值,沒辦法承載過多的訪問量,當(dāng)用戶并發(fā)數(shù)量達(dá)到極限,將沒有辦法正常的提供服務(wù)導(dǎo)致了系統(tǒng)崩潰[10]。因此,需要多個(gè)服務(wù)器主機(jī)可以來共同提供服務(wù)。2.2開發(fā)過程使用開發(fā)的工具簡介IntelliJIDEA:IntelliJIDEA簡稱IDEA,在行業(yè)內(nèi)一度任其為是最好的java開發(fā)工具之一,之所以有著最強(qiáng)的稱號是因?yàn)樗哂兄悄艽a助手、代碼自動(dòng)提示、重構(gòu)、javaEE支持、Ant、JUnit、CVS整合、代碼審查、創(chuàng)新的GUI設(shè)計(jì)等優(yōu)點(diǎn)。通過這個(gè)編輯器能夠以最快的速度來開發(fā)代碼并且代碼在提示功能這一塊是比較優(yōu)于其他工具的。在編寫代碼的過程中,無需將所有的代碼下下來,每次只需要將化簡后的拼寫甚至單單一個(gè)開頭字母,系統(tǒng)就會(huì)提供出完整的代碼。Xshell:Xshell是在開發(fā)過程中,不用近程到主機(jī)就可以連接Linux,可以通過Xshell登錄到遠(yuǎn)程開發(fā)機(jī),將代碼解壓到開發(fā)機(jī)上,從而達(dá)到目的,連接成功后,putty提供了Linux主機(jī)的終端界面,可以在終端中控制Linux主機(jī)。同時(shí),安裝redis以及jdk、MySQL和nginx都需要通過Xshell來控制終端完成。Nginx:Nginx是一款超級輕量級的Web服務(wù)器/反向代理服務(wù)器及,在BSD-like協(xié)議下發(fā)行。有著占用空間小,并發(fā)能力好的優(yōu)點(diǎn)。事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。在前后端分離的項(xiàng)目中,Nginx起著極其重要的作用,Nginx可以讓前端項(xiàng)目單獨(dú)部署,并且更加簡單易用。同時(shí)它也可以作為代理轉(zhuǎn)發(fā)、負(fù)載均衡等等的中間件。Linux:Linux是一個(gè)操作系統(tǒng)版本,他可以用來部署我們的web應(yīng)用,將做好的web程序部署到阿里云服務(wù)器中。即可通過ip或者域名來正常訪問應(yīng)用,在本次課題中,主要用的時(shí)CentOS7版本的Linux系統(tǒng)。Linux內(nèi)核由LinusTorvalds創(chuàng)建,不需要收費(fèi)提供給全球使用。在使用量提高之際這個(gè)操作系統(tǒng)迅猛發(fā)展,快速的得到了程序員們的大力支持。它能運(yùn)行主要的Unix工具軟件,應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。他支持32位和64位硬件。Linux繼承了Unix是以網(wǎng)絡(luò)為核心的設(shè)計(jì)理念,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。Xftp:Xftp有著可以同步文件和文件夾的同步功能,提供文件閱讀的窗口,提供ftp和sftp的連接方式,用戶能夠放心的在unix和linux之間傳輸文件。在本次課題中,需要用它來向服務(wù)器發(fā)送web程序jar包和一些軟件的安裝包。Naavicat:Navicat是一個(gè)強(qiáng)大的MySQL數(shù)據(jù)庫管理和開發(fā)工具,可以查看數(shù)據(jù)庫中的數(shù)據(jù)。以及創(chuàng)建表、數(shù)據(jù)庫、數(shù)據(jù)庫等。使用數(shù)據(jù)庫管理工具相比在終端控制數(shù)據(jù)庫的優(yōu)勢非常明顯,呈下降趨勢的成本展現(xiàn)在人們眼前,可以使數(shù)據(jù)庫環(huán)境準(zhǔn)確并快速的搭建成功。系統(tǒng)可行性和需求分析3.1系統(tǒng)可行性以及優(yōu)缺點(diǎn)為了讓用戶有更好的體驗(yàn)感,并且避免了現(xiàn)有記事類軟件存在問題,現(xiàn)在此軟件主要具備這幾項(xiàng)功能功能:待辦事件的添加、刪除功能;日記的查看、修改功能;學(xué)習(xí)筆記可以按照標(biāo)簽分類功能;每一項(xiàng)任務(wù)以柱狀圖展示功能。所以該軟件極大的提高了工作效率,有效的降低了突如其來的想法在繁雜的工作過程中流失的幾率,使得體驗(yàn)者可以快速的在第一時(shí)間記錄腦海中閃過得有效想法,將想法從頭腦中轉(zhuǎn)移到設(shè)備上,借由托付給設(shè)備使頭腦得到解放。但是也存在有缺點(diǎn),例如:功能不夠完善;單一設(shè)備訪問;增加筆記,待辦需要刷新后才可以在該頁面看到記錄。3.2需求分析用戶體驗(yàn)需求:用戶的體驗(yàn)需求主要從三個(gè)角度分析,分別為:交互效果、響應(yīng)時(shí)長、便捷程度。交互效果:一套賞心悅目的交互效果能讓用戶眼前一亮,交互界面是和用戶直接溝通的窗口,是提高用戶對應(yīng)用認(rèn)知的最直接手段,可以說用戶界面就是系統(tǒng)的門面,本平臺的設(shè)計(jì)采用了antdesign的組件庫,按鈕的點(diǎn)擊效果、界面的布局包括各個(gè)表單元素都在當(dāng)下比較流行,因此通過這些組件庫的引入,能讓本平臺應(yīng)用在交互效果上有不錯(cuò)的體驗(yàn)。響應(yīng)時(shí)長:響應(yīng)時(shí)長是系統(tǒng)性能的體現(xiàn),如果響應(yīng)時(shí)間過長不僅會(huì)讓用戶失去耐心,并且在后續(xù)的使用中,失去好感。因此,在平臺的設(shè)計(jì)中,應(yīng)該從性能的角度進(jìn)行編碼。便捷程度:如果應(yīng)用只能在單一的設(shè)備上訪問,這大大降低了應(yīng)用的便捷性,可能會(huì)失去大量用戶,除了在瀏覽器訪問之外,后續(xù)可以與公眾號進(jìn)行結(jié)合,通過微信公眾號帶來的便利,提高平臺應(yīng)用的便捷程度。業(yè)務(wù)需求:業(yè)務(wù)需求根據(jù)簡化操作的要求,軟件的功能應(yīng)實(shí)現(xiàn)如下細(xì)節(jié):功能模塊功能要點(diǎn)功能點(diǎn)控制臺待辦事件日記學(xué)習(xí)筆記輸入框能夠提示輸入輸入刷新后可以查看增加成功后可以查看詳細(xì)內(nèi)容也設(shè)有修改和刪除功能學(xué)習(xí)筆記標(biāo)簽?zāi)軌蚋鶕?jù)關(guān)鍵字查詢筆記待辦快速查看能夠繞過主界面直接進(jìn)入看到代辦完成和未完成數(shù)量天氣概況能夠主界面就可以查看到性能需求:Web網(wǎng)絡(luò)信息安全在保護(hù)用戶隱私中扮演重要的角色,所有用戶在本應(yīng)用中創(chuàng)建的內(nèi)容,均為用戶的隱私。因此,開發(fā)中需要從安全的角度開發(fā),并且做到不泄露、安全、快速和高效的特點(diǎn)。而在web安全中最容易引起的安全問題即是sql注入漏洞和跨站腳本攻擊,在開發(fā)過程應(yīng)著重主要這兩類安全問題,才能確保用戶信息的安全。Sql注入漏洞的預(yù)防需要在查詢數(shù)據(jù)庫的時(shí)候使用預(yù)編譯的方式,而跨站腳本攻擊(XSS)需要注意的地方就多了,開發(fā)時(shí)需要在每處回顯的位置進(jìn)行判斷回顯的內(nèi)容的安全性。如果回顯時(shí)碰見腳本相關(guān)的符號,如:<script></script>等等,則應(yīng)采取應(yīng)對措施,不可直接回顯,否則腳本將被執(zhí)行。系統(tǒng)的易操作性主要是使用者在操作方面輕松易懂,既做到操作界面不會(huì)隨意跳轉(zhuǎn),在操作做發(fā)生錯(cuò)誤會(huì)出現(xiàn)提示,搜索所需要的日記,學(xué)習(xí)筆記搜索關(guān)鍵字即可。還有系統(tǒng)的安全保密性,只有被授權(quán)注冊過的用戶,通過賬號和密碼才可以登錄進(jìn)入,非公共場所的網(wǎng)絡(luò)電腦才可以設(shè)置自動(dòng)登錄。系統(tǒng)設(shè)計(jì)4.1MySQL數(shù)據(jù)庫設(shè)計(jì)圖4-1E-R圖用戶表:是記錄所有用戶的登錄信息,同時(shí)包括個(gè)人信息,其中id為用戶表主鍵,username為用戶用作登錄的登錄名,并且唯一不可以重復(fù)themConfig為用戶的個(gè)性簽名,在首頁中展示。表4-1-1用戶表屬性名數(shù)據(jù)類型長度注釋idint11主鍵,用戶idusernamevarchar30用戶名,不可重復(fù)passwordvarchar30密碼namevarchar50昵稱telephonevarchar50電話號碼lastLoginTimevarchar50最后登錄時(shí)間roleIdvarchar300地址langVarchar200職業(yè)themeConfigvarchar300首頁個(gè)性簽名deletedvarchar300賬號狀態(tài):10A正常,10X刪除用戶配置:該表可以當(dāng)作是配置和用戶個(gè)人有關(guān)的偏好設(shè)置的總表。當(dāng)前配置了用戶筆記的抬頭簽名,另外可作為其他愛好配置。該表的結(jié)構(gòu)設(shè)計(jì)靈活,并不作為某一配置的結(jié)構(gòu)。表4-1-2用戶配置表屬性名數(shù)據(jù)類型長度注釋idint11主鍵cfgTypevarchar30用戶配置類型useridint30用戶idvaluevarchar50配置的值remarkvarchar50備注statevarchar50狀態(tài)標(biāo)簽表:標(biāo)簽表代表著標(biāo)簽庫,所有用到的標(biāo)簽都將在這個(gè)地方取,同時(shí)通過linkCount字段的值判斷,可以取出當(dāng)下熱門的標(biāo)簽,提供給用戶參考。若是用戶新增加的標(biāo)簽,也會(huì)被存儲到標(biāo)簽庫里。表4-1-3標(biāo)簽表屬性名數(shù)據(jù)類型長度注釋tabIdint11主鍵tabNamevarchar30標(biāo)簽名字linkCountvarchar30標(biāo)簽被引用的次數(shù)角色表:角色表定義了用戶的所有角色,每個(gè)用戶都有一個(gè)角色。通過角色可以定義不同用戶之間的權(quán)限。便實(shí)現(xiàn)了對一些管理員才觸及的功能界面不被普通用戶所操作。表4-1-4角色表屬性名數(shù)據(jù)類型長度注釋idint11主鍵,角色idnamevarchar30角色的名稱describevarchar30角色描述statusvarchar50角色狀態(tài)creatorIdvarchar50角色的創(chuàng)建人createTimevarchar50角色的創(chuàng)建時(shí)間deletedvarchar300角色是否刪除權(quán)限表:權(quán)限表中定義了各類權(quán)限,包括菜單權(quán)限,特殊操作權(quán)限等等。表4-1-5權(quán)限表屬性名數(shù)據(jù)類型長度注釋permissionIdint11主鍵,權(quán)限idpermissionNamevarchar30權(quán)限的名稱actionsvarchar30權(quán)限描述actionListvarchar50擁有的功能權(quán)限集合,數(shù)據(jù)格式為json字符串,可選配置,可與數(shù)據(jù)權(quán)限配合使用dataAccessvarchar50擁有的數(shù)據(jù)權(quán)限集合,數(shù)據(jù)格式為json字符串,可選配置,可與功能權(quán)限配合使用角色權(quán)限表:角色權(quán)限表中存放了角色喝權(quán)限對應(yīng)關(guān)系的表。在該表中可以給角色配置多個(gè)不同的權(quán)限,同時(shí)每個(gè)用戶都對應(yīng)一個(gè)角色,以此便達(dá)到了控制用戶權(quán)限的功能。表4-1-6角色權(quán)限表屬性名數(shù)據(jù)類型長度注釋idint11主鍵permissionIdvarchar30權(quán)限idroleIdvarchar30角色id筆記表:筆記表的內(nèi)容主要是實(shí)現(xiàn)了用戶寫筆記的功能,所有筆記都記錄到該表中,筆記中狀態(tài)的字段用作邏輯刪除,用戶刪除筆記的時(shí)候,不真正刪除筆記,修改筆記的狀態(tài)來達(dá)到刪除的目的,方便在用戶后悔的情況下找回筆記。表4-1-7筆記表屬性名數(shù)據(jù)類型長度注釋noteIdint11主鍵,筆記idnoteTitlevarchar30筆記的標(biāo)題noteContentvarchar30筆記的內(nèi)容,存儲富文本內(nèi)容noteTextvarchar50筆記的純文本內(nèi)容userIdvarchar50用戶idtabIdvarchar50標(biāo)簽idstatevarchar300狀態(tài):10A正常,10X已刪除createDateVarchar200創(chuàng)建時(shí)間updateDatevarchar300更新時(shí)間otherLinkvarchar300外部鏈接日記表:日記表存儲用戶的日記信息,同樣也有狀態(tài)的字段用來做邏輯刪除,以防用戶誤刪操作。同時(shí),isImportant字段可以提供用戶增加重要筆記的功能。表4-1-8日記表屬性名數(shù)據(jù)類型長度注釋diaryIdint11主鍵,日記iddiaryTitlevarchar30日記的標(biāo)題diaryContentvarchar30日記的內(nèi)容,存儲富文本內(nèi)容diaryTextvarchar50日記的純文本內(nèi)容diaryDatevarchar50日記的日期userIdvarchar50用戶的idtabIdvarchar300標(biāo)簽的idstateVarchar200狀態(tài):10A正常,10X已刪除createDatevarchar300創(chuàng)建時(shí)間updateDatevarchar300更新時(shí)間remarkvarchar300備注otherLinkvarchar300外部鏈接isImportantint2是否重要筆記:1:是,2:否待辦表:待辦功能給用戶提供類似便簽的功能,另外,待辦的狀態(tài)主要分為三種(未開始,正在執(zhí)行,已完成),不同的狀態(tài)會(huì)影響到用戶待辦完成的效率和數(shù)量的統(tǒng)計(jì)和展示,另外會(huì)將超時(shí)任務(wù)進(jìn)行記錄。表4-1-9待辦表屬性名數(shù)據(jù)類型長度注釋eventIdint11主鍵,待辦ideventTitlevarchar30待辦標(biāo)題eventContentvarchar30待辦內(nèi)容beginTimevarchar50計(jì)劃開始時(shí)間endTimevarchar50計(jì)劃結(jié)束時(shí)間,作用與計(jì)劃完成時(shí)間相同planTimevarchar50計(jì)劃完成時(shí)間statevarchar300狀態(tài):10A未開始,10B正在執(zhí)行,10C已完成,10X已刪除createTimeVarchar200待辦創(chuàng)建時(shí)間completeTimevarchar300待辦完成時(shí)間userIdint用戶id歷史登錄記錄表:該表只用作記錄用戶每天的登錄次數(shù),沒有其他使用價(jià)值,用作統(tǒng)計(jì)用戶訪問系統(tǒng)的次數(shù)變化。以此提供給用戶使用本系統(tǒng)頻率的參考價(jià)值。表4-1-10歷史登記記錄表屬性名數(shù)據(jù)類型長度注釋userIdint11用戶idloginDayvarchar30登錄的日期countvarchar30登錄的次數(shù)4.2Redis緩存的引用Redis用于存儲最近登陸的用戶,key為curLoginUser。數(shù)據(jù)類型為List,該數(shù)據(jù)內(nèi)容每周清空一次,每當(dāng)有用戶登錄,都在最近登錄用戶中添加一條記錄,并且每次在頭部添加,這樣數(shù)據(jù)的順序既是根據(jù)登錄時(shí)間排序。4.3系統(tǒng)設(shè)計(jì)4.3.1系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖圖4-3-1系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖4.3.2系統(tǒng)詳細(xì)設(shè)計(jì)解析個(gè)人頁分為用戶信息設(shè)置和賬戶密碼修改。用戶信息設(shè)置:用戶想要完成首次登錄,需要設(shè)置用戶名,賬戶昵稱,以及密碼,并且要輸入正確的手機(jī)號,即可完成注冊,注冊成功后即可登陸,登錄后可以修改自己的個(gè)人信息個(gè)性簽名可以展示在控制臺上,控制臺可以查看登陸人的個(gè)人昵稱個(gè)性簽名及各類功能的柱狀統(tǒng)計(jì)圖和天氣概況。賬戶密碼修改:在個(gè)人頁中的個(gè)人設(shè)置可以進(jìn)行密碼修改,當(dāng)前密碼的安全程度均有顯示,修改密碼時(shí)要知道當(dāng)先密碼,修改后的密碼要保證兩次輸入完全相同,才可修改密碼,修改成功后可以設(shè)置為自動(dòng)登錄狀態(tài)控制臺即為工作臺,工作臺中有使用人賬戶的個(gè)人昵稱,職稱,個(gè)性簽名和頭像設(shè)置這些均可在個(gè)人中心里面進(jìn)行修改。登錄數(shù)筆記數(shù)和日記數(shù)的柱狀圖記錄的均為近十天內(nèi)的數(shù)據(jù)以及標(biāo)記有今日登陸,筆記日記數(shù)量還設(shè)有未完成代辦及總數(shù)待辦。天氣概況記錄的是最近六天的天氣以及天氣情況提醒例如“感冒低發(fā)期,天氣舒適,多吃蔬菜多喝水”。健康指數(shù)通過線行統(tǒng)計(jì)圖表述了本月和上月與訪問量待辦超時(shí)數(shù)和日記數(shù)之間的關(guān)系,本月和上月分別采用不同顏色的線來區(qū)分。待辦事件為事件中心,表示出剩余待辦,本月處理待辦平均時(shí)間,本月超時(shí)數(shù)和本月完成任務(wù)數(shù)。點(diǎn)擊添加即可增加待辦可設(shè)置標(biāo)題,起始和終止日期和內(nèi)容點(diǎn)擊ok增加待辦,刷新一下即可在頁面看到待辦,唯一的缺點(diǎn)就是每一個(gè)待辦需要手動(dòng)開始以及手動(dòng)結(jié)束,待辦數(shù)也可展示在工作臺頁面。日記中心屬于我的日記,可以查看到個(gè)性簽名以及每個(gè)日記的主題,點(diǎn)擊查看內(nèi)容即可查看日記內(nèi)容,點(diǎn)擊修改內(nèi)容才可以修改內(nèi)容,刪除即可刪除日記。新建日記是跟待辦一樣可以設(shè)置日記標(biāo)題,記錄日期及內(nèi)容。學(xué)習(xí)中心設(shè)有學(xué)習(xí)筆記,可以根據(jù)標(biāo)題來快速查找筆記,同樣增加學(xué)習(xí)筆記的時(shí)候可以設(shè)置標(biāo)題,但是學(xué)習(xí)筆記可以增添標(biāo)簽,系統(tǒng)自動(dòng)在最熱的100個(gè)標(biāo)簽隨機(jī)推薦三個(gè)提供選擇,但是也可以手動(dòng)添加自己喜歡的標(biāo)簽,每個(gè)筆記下方也設(shè)有查看內(nèi)容,編輯和刪除。系統(tǒng)實(shí)現(xiàn)登陸攔截器實(shí)現(xiàn)登錄攔截系統(tǒng)的作用是攔截器可以攔截未登錄的用戶進(jìn)入系統(tǒng),所有請求在經(jīng)過后端時(shí),都會(huì)先進(jìn)入攔截器,在攔截器中判斷登錄狀態(tài)。攔截頁面:個(gè)人頁面、筆記頁面、日記頁面、待辦頁面、首頁。publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{HttpSessionsession=request.getSession();UserVouserBean=(UserVo)session.getAttribute(Contants.Attribute_User_KEY);RetMsgresult=newRetMsg();if(userBean==null||userBean.getUsername().equals("")){//session中沒有登陸信息,從token中取Stringtoken=request.getHeader("Access-Token")==null?"":request.getHeader("Access-Token");UserVouserVo=null;try{userVo=JSON.parseObject(JasyptUtil.decrypt(token,salt),UserVo.class);}catch(Exceptione){}if(userVo!=null){Calendarcalendar=Calendar.getInstance();calendar.setTime(userVo.getLastLoginTime());calendar.add(Calendar.DATE,7);//token有效期為七天CalendarcalendarNow=Calendar.getInstance();calendarNow.setTime(newDate());if(calendar.after(calendarNow)){session.setAttribute(Contants.Attribute_User_KEY,userVo);LoginHistoryhistory=loginHistoryService.getOne(newQueryWrapper<LoginHistory>().eq("userId",userVo.getId()).eq("loginDay",LocalDate.now()));if(history!=null){history.setCount(history.getCount()+1);loginHistoryService.update(history,newUpdateWrapper<LoginHistory>().eq("userId",userVo.getId()).eq("loginDay",LocalDate.now()));}else{history=newLoginHistory();history.setUserId(userVo.getId());history.setLoginDay(newDate());history.setCount(1);loginHistoryService.save(history);}returntrue;}}5.2攔截不安全的請求方式攔截不安全請求方式的作用:在http請求中,有許多請求的方式,被web應(yīng)用劃分為不安全的請求式;可能給應(yīng)用帶來安全漏洞。因此只需要開啟需要用到的請求方式即可。攔截的請求方式:HEAD、PUT、DELETE、OPTIONS、TRACE、COPY、SEARCH、PROPFIND。放行的請求:GET、POST請求方式是web應(yīng)用中最常用的請求方式,幾乎所有的請求都可通過這兩種方式實(shí)現(xiàn)。/*springboot2.0攔截不安全請求*/@BeanpublicConfigurableServletWebServerFactoryconfigurableServletWebServerFactory(){TomcatServletWebServerFactoryfactory=newTomcatServletWebServerFactory();factory.addContextCustomizers(context->{SecurityConstraintsecurityConstraint=newSecurityConstraint();securityConstraint.setUserConstraint("CONFIDENTIAL");SecurityCollectioncollection=newSecurityCollection();collection.addPattern("/*");collection.addMethod("HEAD");collection.addMethod("PUT");collection.addMethod("DELETE");collection.addMethod("OPTIONS");//collection.addMethod("POST");//collection.addMethod("GET");collection.addMethod("TRACE");collection.addMethod("COPY");collection.addMethod("SEARCH");collection.addMethod("PROPFIND");securityConstraint.addCollection(collection);context.addConstraint(securityConstraint);});returnfactory;}}5.3Nginx代理的實(shí)現(xiàn)作用:利用Nginx部署前端項(xiàng)目,在前端中的后端請求通過Nginx代理轉(zhuǎn)發(fā)至后端應(yīng)用的地址,其中,所有請求路徑中包含”/api/”的請求均轉(zhuǎn)發(fā)到后端應(yīng)用的地址中。圖5-3Nginx配置信息5.4獲取當(dāng)前最熱標(biāo)簽作用:從引用次數(shù)最多的100個(gè)標(biāo)簽里隨機(jī)抽取出三個(gè),作為推薦標(biāo)簽推給用戶在編輯筆記時(shí)選用,每個(gè)筆記都可以加上標(biāo)簽。@GetMapping("hotTabs")publicRetDataMsghotTabs(@RequestParamStringcount){count=count.trim();RetDataMsgresult=newRetDataMsg();QueryWrapper<MTab>wrapper=newQueryWrapper<MTab>().orderByDesc("linkCount").eq("1","1limit100");List<MTab>tempList=tabMapper.selectList(wrapper);intallCount=tabMapper.selectCount(wrapper);///查詢標(biāo)簽總數(shù)List<MTab>returntList=newArrayList<>();List<Integer>ids=newArrayList<>();for(inti=0;i<Integer.parseInt(count);i++){if(i>allCount)break;Doubletemp;while(true){if(allCount>100){temp=Math.random()*(101);}else{temp=Math.random()*(allCount);}if(!ids.contains(Value())){ids.add(Value());break;}}returntList.add(tempList.get(Value()));}result.setResult(returntList);result.setCode(200);returnresult;}5.5健康指數(shù)作用:對本月和上月各類指數(shù)進(jìn)行統(tǒng)計(jì)和計(jì)算。統(tǒng)計(jì)包括日記數(shù)量、筆記數(shù)量、待辦超時(shí)率和訪問次數(shù)。@GetMapping("healthIndex")publicRetDataMsghealthIndex(HttpSessionsession){RetDataMsgresult=newRetDataMsg();UserVouserBean=(UserVo)session.getAttribute(Contants.Attribute_User_KEY);LocalDatenow=LocalDate.now();now=now.withDayOfMonth(1);longtoday=now.atStartOfDay().toInstant(ZoneOffset.of("+8")).toEpochMilli();longlastMonth=now.minusMonths(1).atStartOfDay().toInstant(ZoneOffset.of("+8")).toEpochMilli();JSONObjectmonthObject=userService.calculateEvent(userBean,today,0);JSONObjectlastMonthObject=userService.calculateEvent(userBean,lastMonth,today);inteventCount=eventService.count(newQueryWrapper<MEvent>().eq("userId",userBean.getId()).ne("state","10X").gt("beginTime",today));intlastEventCount=eventService.count(newQueryWrapper<MEvent>().eq("userId",userBean.getId()).ne("state","10X").between("beginTime",lastMonth,today));intlonginCount=loginHistoryService.list(newQueryWrapper<LoginHistory>().eq("userId",userBean.getId()).gt("loginDay",now)).stream().mapToInt(item->item.getCount()).sum();intlasthLonginCount=loginHistoryService.list(newQueryWrapper<LoginHistory>().eq("userId",userBean.getId()).between("loginDay",now.minusMonths(1),now)).stream().mapToInt(item->item.getCount()).sum();intdiaryCount=diaryService.count(newQueryWrapper<MDiary>().eq("userId",userBean.getId()).ne("state","10X").gt("createDate",today));intlastdiaryCount=diaryService.count(newQueryWrapper<MDiary>().eq("userId",userBean.getId()).ne("state","10X").between("createDate",lastMonth,today));intnoteCount=noteService.count(newQueryWrapper<MNote>().eq("userId",userBean.getId()).ne("state","10X").gt("createDate",LocalDate.now()));intlastNoteCount=noteService.count(newQueryWrapper<MNote>().eq("userId",userBean.getId()).ne("state","10X").between("createDate",lastMonth,today));JSONArrayresultArray=newJSONArray();JSONObjectobject1=newJSONObject();object1.put("item","待辦超時(shí)數(shù)");object1.put("上月",lastMonthObject.get("countTimeout").toString().equals("0")?0:Double.parseDouble(lastMonthObject.get("countTimeout").toString())/lastEventCount*100);object1.put("本月",monthObject.get("countTimeout").toString().equals("0")?0:Double.parseDouble(monthObject.get("countTimeout").toString())/eventCount*100);JSONObjectobject3=newJSONObject();object3.put("item","日記");object3.put("上月",lastdiaryCount);object3.put("本月",diaryCount);JSONObjectobject4=newJSONObject();object4.put("item","筆記");object4.put("上月",lastNoteCount);object4.put("本月",noteCount);JSONObjectobject5=newJSONObject();object5.put("item","訪問量");object5.put("上月",lasthLonginCount);object5.put("本月",longinCount);resultArray.add(object1);resultArray.add(object3);resultArray.add(object4);resultArray.add(object5);result.setResult(resultArray);result.setCode(200);returnresult;}}5.6應(yīng)用部署到云服務(wù)器上部署方式:通過容器的方式部署,前端使用Nginx為基礎(chǔ)鏡像,后端使用Java作為基礎(chǔ)鏡像。容器部署是當(dāng)下非常流行的部署方式,并且相較于傳統(tǒng)的虛擬機(jī)有著很大的飛躍。使用容器的方式原比虛擬機(jī)的方式強(qiáng)大許多,在虛擬機(jī)中,需要占用大量系統(tǒng)資源,虛擬機(jī)安裝的系統(tǒng)也需要占用大量的內(nèi)存和磁盤。而容器的出現(xiàn),就解決了虛擬機(jī)的痛點(diǎn),使得隔離部署的方式非常輕松,通過容器的方式有以下幾個(gè)優(yōu)點(diǎn):跨平臺可移植性:按統(tǒng)一標(biāo)準(zhǔn)打包(鏡像的方式),傳播性極強(qiáng)。面向應(yīng)用:優(yōu)化部署應(yīng)用(設(shè)計(jì)哲學(xué))→API,接口及文檔(體現(xiàn))。版本控制:追蹤、查詢、記錄版本信息(應(yīng)用程序更改史)和回滾版本等組件復(fù)用:可在基礎(chǔ)鏡像的條件下使用其他鏡像。共享性:公共的注冊服務(wù)器(可拉取公共的鏡像服務(wù))#基礎(chǔ)鏡像FROMjava:8VOLUME/tmp#把可執(zhí)行jar包復(fù)制到基礎(chǔ)鏡像的目錄下COPYinfocoord-0.0.1-SNAPSHOT.jarinfocoord.jarRUNln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtimeRUNecho'Asia/Shanghai'>/etc/timezoneRUNbash-c"touch/infocoord.jar"#鏡像要暴露的端口,如要使用端口,在執(zhí)行dockerrun命令時(shí)使用-p生效EXPOSE8081#在鏡像運(yùn)行為容器后執(zhí)行的命令ENTRYPOINT["java","-jar","infocoord.jar","--files.active=prod","--server.port=8081",">/log/app.log"]圖5-6-1前端項(xiàng)目容器部署配置系統(tǒng)功能測試6.1賬戶登錄測試步驟:1.前后端運(yùn)行,運(yùn)行后得到域名http://localhost:8000/(不可用IE瀏覽器) 2.輸入賬戶名和密碼,密碼可以設(shè)置成可見或者不可見 3.輸入成功后按確定即可登錄,登陸密碼或者賬戶名輸入有誤時(shí),系統(tǒng)會(huì)彈窗提示,輸入框?yàn)榭找步o予提示。圖6-1-1登陸操作圖示6.2個(gè)人資料修改測試步驟:首頁點(diǎn)擊個(gè)人頁當(dāng)前頁點(diǎn)擊修改個(gè)人資料,或者修改首頁簽名,修改基本信息和個(gè)性簽名后點(diǎn)擊提交安全設(shè)置可以看到密碼的安全性也可以修改密碼最右邊修改,修改后點(diǎn)擊提交測試結(jié)果:可用修改過的密碼登錄,登陸成功則功能正常圖6-2-1檢測如圖所示6.3各項(xiàng)功能測試添加待辦測試步驟:1.點(diǎn)擊事件中心2.點(diǎn)擊添加3.增加待辦后點(diǎn)擊確定4.待辦增加成功后手動(dòng)點(diǎn)擊開始測試結(jié)果:增加功能正常圖6-3-1檢測如圖所示日記中心測試步驟:1.點(diǎn)擊日記中心2.點(diǎn)擊新增日記 3.日記添加完成后刷新就可以在頁面上看到剛添加過得日記測試結(jié)果:日記功能正常圖6-3-2檢測如圖所示學(xué)習(xí)中心測試步驟:點(diǎn)擊學(xué)習(xí)筆記點(diǎn)擊添加筆記筆記添加完成后按f5刷新檢測是否添加成功測試結(jié)果:學(xué)習(xí)筆記功能正常圖6-3-3檢測如圖所示

結(jié)束語雖然這次畢設(shè)沒有經(jīng)歷很漫長的過程,但是我已經(jīng)在這方,面學(xué)到了很多東西,已經(jīng)為今后的工作中奠定了有效的基礎(chǔ)。作為一名計(jì)算機(jī)工作者,最首要的任務(wù)就是清楚的知道每位用戶的需求,才可以根據(jù)需求來確定軟件開發(fā)的功能要點(diǎn);其次就需要設(shè)計(jì)者來親身體會(huì),學(xué)會(huì)換位思考,我們本身就是體驗(yàn)者,我們學(xué)要什么樣的軟件,只有這樣,才能為開發(fā)工作明確了方向,并使所開發(fā)的軟件能夠真正讓用戶所面臨的問題得到改善。經(jīng)過幾個(gè)月的設(shè)計(jì)與開發(fā),這個(gè)應(yīng)用型網(wǎng)站日記本的功能基本符合設(shè)想的要求:能夠?qū)崿F(xiàn)從登錄到添加等各項(xiàng),實(shí)現(xiàn)對之前筆記日記的查看、編輯、刪除,還可以根據(jù)關(guān)鍵字對筆記進(jìn)行搜索等。由于設(shè)計(jì)時(shí)間有限,自身技能和所掌握的知識和能力有限,系統(tǒng)存在的一些弱點(diǎn),像修增加了待辦日記學(xué)習(xí)筆記需要刷新一次頁面才能出來這個(gè)問題,還是沒有能夠想到解決的辦法。之后經(jīng)過我的知識面逐漸擴(kuò)展,還會(huì)有更多的問題被發(fā)現(xiàn)。這次的畢業(yè)設(shè)計(jì)使我收獲頗多,不但學(xué)到了新的知識,積累了處理問題的方法,也提高了自己的眼界,當(dāng)今社會(huì)人類已經(jīng)入了信息時(shí)代,社會(huì)瞬息萬變只有不斷提高自己才能不會(huì)被社會(huì)淘汰總之借用這次畢業(yè)設(shè)計(jì)我接觸了許多沒學(xué)過的以及很多的課外知識,更新了自己原有的知識層面,挖掘出來新的開發(fā)思路,相信之后會(huì)更深入的學(xué)習(xí)這方面的知識

附錄一:參考文獻(xiàn)[1]ShiXiang-dong,QianSheng-bang,LiLin-jia,ZhaoEr-gang.CSSJ213934.3-050020:ANewDouble-modeHigh-amplitudeScuti-typePulsatingStar[J].PublicationsoftheAstronomicalSocietyofthePacific,2021,133(1023).[2]BatalasNikolaos,KhanVassilis-Javed,MarkopoulosPanos.ExecutableHTML[J].SoftwareX,2021,14.[3]AlexScaria,RajkumarTDhiliphan.2SpiderBirdSwarmAlgorithmwithDeepBeliefNetworkforMaliciousJavaScriptDetection[J].Computers&Security,2021(prepublish).[4]馬小陸,王磊,方英歌.一種基于嵌入式Linux信息處理的開放性教學(xué)平臺設(shè)計(jì)[J].湖北理工學(xué)院學(xué)報(bào),2021,37(02):23-26.[5]趙凱.新形態(tài)教材建設(shè)研究——以Linux網(wǎng)絡(luò)服務(wù)構(gòu)建與管理課程為例[J].中國現(xiàn)代教育裝備,2021(07):137-139.[6]朱佑滔,何志琴,施文燁.多種群蟻群算法在機(jī)械手臂路徑規(guī)劃中的設(shè)計(jì)與應(yīng)用[J].機(jī)械傳動(dòng),2021,45(04):160-165.[7]趙慧周.面向文科生的程序調(diào)試方法線上教學(xué)實(shí)踐與思考——以JavaScript程序設(shè)計(jì)為例[J].計(jì)算機(jī)教育,2021(04):7-10+23.[8]ZeroualiAhmed,MensTom,DeRooverCoen.OntheUsageofJavaScript,PythonandRubyPackagesinDocker

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論