本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種熱部署裝置和方法。
背景技術(shù):
所謂熱部署,就是在應(yīng)用正在運(yùn)行的時候升級軟件,卻不需要重新啟動應(yīng)用。
在進(jìn)行項目程序開發(fā)過程中,經(jīng)常遇到這種問題,當(dāng)前項目開發(fā)上線,即使是一個小模塊的變更都需要終端經(jīng)過新編譯,打包、部署和重啟線上機(jī)器或服務(wù)器等流程,耗時耗力,影響線上的體驗,尤其是啟停機(jī)器或服務(wù)器浪費(fèi)了大量的時間,而在生產(chǎn)環(huán)境中,重啟除了會浪費(fèi)大量的時間,也會帶來額外的風(fēng)險,降低用戶體驗。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種熱部署裝置和方法,旨在解決現(xiàn)有技術(shù)中需重啟線上機(jī)器才能加載新開發(fā)的項目應(yīng)用文件,造成耗時耗力,用戶體驗差的技術(shù)問題。
為實現(xiàn)上述目的,本發(fā)明實施例提供一種熱部署裝置,其特征在于終端側(cè)設(shè)置有本地服務(wù)器端,所述熱部署裝置包括:
接收模塊,用于接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件;
第一更新模塊,用于根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是所述本地服務(wù)器端基于所述開發(fā)項目的應(yīng)用文件生成的;
第一加載模塊,加載第一緩存文件;
調(diào)用模塊,用于當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用。
可選地,第一應(yīng)用文件包括源代碼,所述本地服務(wù)器端包括敏捷開發(fā)語言Groovy類加載器,所述本地服務(wù)器端緩存文件包括各個本地應(yīng)用文件,其特征在于,熱部署裝置還包括:
判斷模塊,用于判斷第一應(yīng)用文件在本地服務(wù)器端緩存文件中是否存在對應(yīng)的本地應(yīng)用文件;
第二加載模塊,當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將所述源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例。
可選地,熱部署裝置還包括:
生成模塊,用于獲取各個類對象實例,生成相應(yīng)的本地路徑;
保存模塊,用于保存各個類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端。
可選地,第一更新模塊包括:
獲取單元,用于獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;
生成單元,用于清除應(yīng)用歷史文件,將獲取的第一應(yīng)用文件加載代替應(yīng)用歷史文件,并對應(yīng)生成第一應(yīng)用文件在本地服務(wù)器端的路徑;
保存單元,用于保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地。
可選地,熱部署裝置還包括:
獲取模塊,用于保存清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,獲取清除的應(yīng)用歷史文件,將清除的應(yīng)用歷史文件作為第二應(yīng)用文件;
第二更新模塊,用于將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。
為實現(xiàn)上述目的,本發(fā)明還提供一種熱部署方法,其特征在于終端側(cè)設(shè)置有本地服務(wù)器端,所述熱部署方法包括:
接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件;
根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是所述本地服務(wù)器端基于所述開發(fā)項目的應(yīng)用文件生成的;
加載第一緩存文件;
當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用。
可選地,所述第一應(yīng)用文件包括源代碼,所述本地服務(wù)器端包括敏捷開發(fā)語言Groovy類加載器,所述接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件步驟之后包括:
判斷第一應(yīng)用文件在本地服務(wù)器端緩存文件中是否存在對應(yīng)的本地應(yīng)用文件;
當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將所述源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例。
可選地,當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將各個源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例步驟之后包括:
用于獲取各個類對象實例,生成相應(yīng)的本地路徑;
用于保存各個類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端。
可選地,根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件步驟包括:
獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;
清除應(yīng)用歷史文件,將獲取的第一應(yīng)用文件加載代替應(yīng)用歷史文件,并對應(yīng)生成第一應(yīng)用文件在本地服務(wù)器端的路徑;
保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地。
可選地,熱部署方法還包括:
保存清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,獲取清除的應(yīng)用歷史文件,將清除的應(yīng)用歷史文件作為第二應(yīng)用文件;
將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。
本發(fā)明通過接收模塊,用于接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件;第一更新模塊,用于根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是所述本地服務(wù)器端基于所述開發(fā)項目的應(yīng)用文件生成的;第一加載模塊,加載第一緩存文件;調(diào)用模塊,用于當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用。由于當(dāng)開發(fā)項目服務(wù)器端更新應(yīng)用文件時,將更新的應(yīng)用文件即第一應(yīng)用文件實時發(fā)送到本地服務(wù)器端,并對應(yīng)更新本地緩存文件,實時加載解析本地緩存中的第一應(yīng)用文件,以供應(yīng)用,而不是對第一應(yīng)用文件進(jìn)行編譯、打包、部署后,本地服務(wù)器或機(jī)器重啟后去加載對應(yīng)部署的第一應(yīng)用文件,從而解決了現(xiàn)有技術(shù)中需重啟線上機(jī)器才能加載新開發(fā)的項目應(yīng)用文件,造成耗時耗力,用戶體驗差的技術(shù)問題。
附圖說明
圖1為實現(xiàn)本發(fā)明各個實施例一個可選的移動終端的硬件結(jié)構(gòu)示意圖;
圖2為圖1中移動終端的無線通信裝置示意圖;
圖3是本發(fā)明熱部署裝置第一實施例的模塊示意圖;
圖4為本發(fā)明熱部署裝置第二實施例的模塊示意圖;
圖5為本發(fā)明熱部署裝置第四實施例中第一更新模塊的細(xì)化模塊示意圖;
圖6為本發(fā)明熱部署方法第一實施例的流程示意圖;
圖7為本發(fā)明熱部署方法第二實施例中接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件步驟之后的細(xì)化流程示意圖;
圖8為本發(fā)明熱部署方法第四實施例根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件步驟的流程示意圖;
圖9為本發(fā)明熱部署裝置與方法的架構(gòu)流程圖;
圖10為本發(fā)明熱部署裝置與方法的場景施例圖;
圖11為本發(fā)明熱部署裝置與方法的場景示意圖;
圖12為本發(fā)明熱部署裝置與方法的場景示意圖。
本發(fā)明目的的實現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實施例,參照附圖做進(jìn)一步說明。
具體實施方式
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“區(qū)塊”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,“模塊”與“部件”可以混合地使用。
移動終端可以以各種形式來實施。例如,本發(fā)明中描述的終端可以包括諸如移動電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動終端以及諸如數(shù)字TV、臺式計算機(jī)等等的固定終端。下面,假設(shè)終端是移動終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。
圖1為實現(xiàn)本發(fā)明各個實施例一個可選的移動終端的硬件結(jié)構(gòu)示意圖。
移動終端100可以包括無線通信單元110、A/V(音頻/視頻)輸入單元120、用戶輸入單元130、感測單元140、輸出單元150、存儲器160、接口單元170、控制器180和電源單元190,接收模塊10,第一更新模塊20,第一加載模塊30,調(diào)用模塊40。圖1示出了具有各種組件的移動終端,但是應(yīng)理解的是,并不要求實施所有示出的組件??梢蕴娲貙嵤└嗷蚋俚慕M件。將在下面詳細(xì)描述移動終端的元件。
無線通信單元110通常包括一個或多個組件,其允許移動終端100與無線通信裝置或網(wǎng)絡(luò)之間的無線電通信。例如,無線通信單元可以包括位置信息模塊115。
位置信息模塊115是用于檢查或獲取移動終端的位置信息的模塊。位置信息模塊的典型示例是GPS(全球定位裝置)。根據(jù)當(dāng)前的技術(shù),GPS模塊115計算來自三個或更多衛(wèi)星的距離信息和準(zhǔn)確的時間信息并且對于計算的信息應(yīng)用三角測量法,從而根據(jù)經(jīng)度、緯度和高度準(zhǔn)確地計算三維當(dāng)前位置信息。當(dāng)前,用于計算位置和時間信息的方法使用三顆衛(wèi)星并且通過使用另外的一顆衛(wèi)星校正計算出的位置和時間信息的誤差。此外,GPS模塊115能夠通過實時地連續(xù)計算當(dāng)前位置信息來計算速度信息。
A/V輸入單元120用于接收音頻或視頻信號。
用戶輸入單元130可以根據(jù)用戶輸入的命令生成鍵輸入數(shù)據(jù)以控制移動終端的各種操作。
感測單元140檢測移動終端100的當(dāng)前狀態(tài),(例如,移動終端100的打開或關(guān)閉狀態(tài))、移動終端100的位置、用戶對于移動終端100的接觸(即,觸摸輸入)的有無、移動終端100的取向、移動終端100的加速或?qū)⑺僖苿雍头较虻鹊龋⑶疑捎糜诳刂埔苿咏K端100的操作的命令或信號。另外,感測單元140能夠檢測電源單元190是否提供電力或者接口單元170是否與外部裝置耦接。
接口單元170用作至少一個外部裝置與移動終端100連接可以通過的接口。
另外,當(dāng)移動終端100與外部底座連接時,接口單元170可以用作允許通過其將電力從底座提供到移動終端100的路徑或者可以用作允許從底座輸入的各種命令信號通過其傳輸?shù)揭苿咏K端的路徑。從底座輸入的各種命令信號或電力可以用作用于識別移動終端是否準(zhǔn)確地安裝在底座上的信號。輸出單元150被構(gòu)造為以視覺、音頻和/或觸覺方式提供輸出信號(例如,音頻信號、視頻信號、警報信號、振動信號等等)。
輸出單元150可以包括顯示單元151、音頻輸出模塊152、警報單元153等等。
顯示單元151可以顯示在移動終端100中處理的信息。例如,當(dāng)移動終端100處于電話通話模式時,顯示單元151可以顯示與通話或其它通信(例如,文本消息收發(fā)、多媒體文件下載等等)相關(guān)的用戶界面(UI)或圖形用戶界面(GUI)。當(dāng)移動終端100處于視頻通話模式或者圖像捕獲模式時,顯示單元151可以顯示捕獲的圖像和/或接收的圖像、示出視頻或圖像以及相關(guān)功能的UI或GUI等等。
同時,當(dāng)顯示單元151和觸摸板以層的形式彼此疊加以形成觸摸屏?xí)r,顯示單元151可以用作輸入裝置和輸出裝置。顯示單元151可以包括液晶顯示器(LCD)、薄膜晶體管LCD(TFT-LCD)、有機(jī)發(fā)光二極管(OLED)顯示器、柔性顯示器、三維(3D)顯示器等等中的至少一種。這些顯示器中的一些可以被構(gòu)造為透明狀以允許用戶從外部觀看,這可以稱為透明顯示器,典型的透明顯示器可以例如為TOLED(透明有機(jī)發(fā)光二極管)顯示器等等。根據(jù)特定想要的實施方式,移動終端100可以包括兩個或更多顯示單元(或其它顯示裝置),例如,移動終端可以包括外部顯示單元(未示出)和內(nèi)部顯示單元(未示出)。觸摸屏可用于檢測觸摸輸入壓力值以及觸摸輸入位置和觸摸輸入面積。
存儲器160可以存儲由控制器180執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時地存儲己經(jīng)輸出或?qū)⒁敵龅臄?shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。而且,存儲器160可以存儲關(guān)于當(dāng)觸摸施加到觸摸屏?xí)r輸出的各種方式的振動和音頻信號的數(shù)據(jù)。
存儲器160可以包括至少一種類型的存儲介質(zhì),所述存儲介質(zhì)包括閃存、硬盤、多媒體卡、卡型存儲器(例如,SD或DX存儲器等等)、隨機(jī)訪問存儲器(RAM)、靜態(tài)隨機(jī)訪問存儲器(SRAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、可編程只讀存儲器(PROM)、磁性存儲器、磁盤、光盤等等。而且,移動終端100可以與通過網(wǎng)絡(luò)連接執(zhí)行存儲器160的存儲功能的網(wǎng)絡(luò)存儲裝置協(xié)作。
控制器180通??刂埔苿咏K端的總體操作。例如,控制器180執(zhí)行與語音通話、數(shù)據(jù)通信、視頻通話等等相關(guān)的控制和處理。另外,控制器180可以包括用于再現(xiàn)(或回放)多媒體數(shù)據(jù)的多媒體模塊181,多媒體模塊181可以構(gòu)造在控制器180內(nèi),或者可以構(gòu)造為與控制器180分離。控制器180可以執(zhí)行模式識別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識別為字符或圖像。
電源單元190在控制器180的控制下接收外部電力或內(nèi)部電力并且提供操作各元件和組件所需的適當(dāng)?shù)碾娏Α?/p>
這里描述的各種實施方式可以以使用例如計算機(jī)軟件、硬件或其任何組合的計算機(jī)可讀介質(zhì)來實施。對于硬件實施,這里描述的實施方式可以通過使用特定用途集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設(shè)計為執(zhí)行這里描述的功能的電子單元中的至少一種來實施,在一些情況下,這樣的實施方式可以在控制器180中實施。對于軟件實施,諸如過程或功能的實施方式可以與允許執(zhí)行至少一種功能或操作的單獨(dú)的軟件模塊來實施。軟件代碼可以由以任何適當(dāng)?shù)木幊陶Z言編寫的軟件應(yīng)用程序(或程序)來實施,軟件代碼可以存儲在存儲器160中并且由控制器180執(zhí)行。
如圖1中所示的移動終端100可以被構(gòu)造為利用經(jīng)由幀或分組發(fā)送數(shù)據(jù)的諸如有線和無線通信裝置以及基于衛(wèi)星的通信裝置來操作。
現(xiàn)在將參考圖2描述其中根據(jù)本發(fā)明的移動終端能夠操作的通信裝置。
這樣的通信裝置可以使用不同的空中接口和/或物理層。例如,由通信裝置使用的空中接口包括例如頻分多址(FDMA)、時分多址(TDMA)、碼分多址(CDMA)和通用移動通信裝置(UMTS)(特別地,長期演進(jìn)(LTE))、全球移動通信裝置(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通信裝置,但是這樣的教導(dǎo)同樣適用于其它類型的裝置。
參考圖2,CDMA無線通信裝置可以包括多個移動終端100、多個基站(BS)270、基站控制器(BSC)275和移動交換中心(MSC)280。MSC280被構(gòu)造為與公共電話交換網(wǎng)絡(luò)(PSTN)290形成接口。MSC280還被構(gòu)造為與可以經(jīng)由回程線路耦接到基站270的BSC275形成接口?;爻叹€路可以根據(jù)若干己知的接口中的任一種來構(gòu)造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的裝置可以包括多個BSC2750。
每個BS270可以服務(wù)一個或多個分區(qū)(或區(qū)域),由多向天線或指向特定方向的天線覆蓋的每個分區(qū)放射狀地遠(yuǎn)離BS270?;蛘?,每個分區(qū)可以由用于分集接收的兩個或更多天線覆蓋。每個BS270可以被構(gòu)造為支持多個頻率分配,并且每個頻率分配具有特定頻譜(例如,1.25MHz,5MHz等等)。
分區(qū)與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發(fā)器子裝置(BTS)或者其它等效術(shù)語。在這樣的情況下,術(shù)語"基站"可以用于籠統(tǒng)地表示單個BSC275和至少一個BS270?;疽部梢员环Q為"蜂窩站"?;蛘?,特定BS270的各分區(qū)可以被稱為多個蜂窩站。
如圖2中所示,廣播發(fā)射器(BT)295將廣播信號發(fā)送給在裝置內(nèi)操作的移動終端100。如圖1中所示的廣播接收模塊111被設(shè)置在移動終端100處以接收由BT295發(fā)送的廣播信號。在圖2中,示出了幾個全球定位裝置(GPS)衛(wèi)星300。衛(wèi)星300幫助定位多個移動終端100中的至少一個。
在圖2中,描繪了多個衛(wèi)星300,但是可以理解的是,可以利用任何數(shù)目的衛(wèi)星獲得有用的定位信息。作為無線通信裝置的一個典型操作,BS270接收來自各種移動終端100的反向鏈路信號。移動終端100通常參與通話、消息收發(fā)和其它類型的通信。特定基站270接收的每個反向鏈路信號被在特定BS270內(nèi)進(jìn)行處理。獲得的數(shù)據(jù)被轉(zhuǎn)發(fā)給相關(guān)的BSC275。BSC提供通話資源分配和包括BS270之間的軟切換過程的協(xié)調(diào)的移動管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務(wù)。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應(yīng)地控制BS270以將正向鏈路信號發(fā)送到移動終端100。
基于上述移動終端硬件結(jié)構(gòu)、通信裝置結(jié)構(gòu),提出本發(fā)明一種熱部署裝置的各實施例,熱部署裝置為移動終端的一部分。
參照圖3,本發(fā)明提供一種熱部署裝置,在熱部署裝置第一實施例中,終端側(cè)設(shè)置有本地服務(wù)器端,所述熱部署裝置包括:
接收模塊10,用于接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件;
接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件,所述應(yīng)用文件包括各個開發(fā)項目中的邏輯單元或區(qū)塊,邏輯單元或區(qū)塊,指的是實現(xiàn)業(yè)務(wù)邏輯的代碼,即是邏輯單元或區(qū)塊由實現(xiàn)各個業(yè)務(wù)的代碼構(gòu)成,所述各個邏輯代碼包括Java代碼等,更新的應(yīng)用文件包括對應(yīng)用文件的創(chuàng)建、刪除,代碼編輯,刷新等常規(guī)操作,即是可新創(chuàng)建實現(xiàn)業(yè)務(wù)邏輯的代碼,如圖10所示,即是新創(chuàng)建邏輯單元,刪除相應(yīng)的實現(xiàn)業(yè)務(wù)邏輯的代碼,在相應(yīng)邏輯區(qū)塊進(jìn)行代碼編輯等操作,代碼編輯等在集成開發(fā)環(huán)境(IDE)界面上進(jìn)行,所述集成開發(fā)環(huán)境(IDE)界面上可進(jìn)行包括清除緩存,編輯,刪除等操作,所述IDE包括Wed(類)IDE等。當(dāng)項目開發(fā)人員可在IDE上更新相應(yīng)應(yīng)用文件后,相應(yīng)服務(wù)器端會實時檢測到有相應(yīng)的更新應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件,終端實時獲取得到更新應(yīng)用文件的訊息,進(jìn)而終端獲取第一應(yīng)用文件,具體流程架構(gòu)如圖9所示,管理模塊部署于開發(fā)服務(wù)器端,負(fù)責(zé)管理邏輯單元,提供邏輯單元創(chuàng)建、刪除,代碼編輯等常規(guī)功能即是對第一應(yīng)用文件的創(chuàng)建,刪除等,消息棧實時獲取管理模塊中第一應(yīng)用文件變化的訊息,核心模塊即是負(fù)責(zé)源碼遠(yuǎn)程加載服務(wù),執(zhí)行模塊部署于終端負(fù)責(zé)加載和實例化源碼,提供公共的接口。
第一更新模塊20,第一更新模塊,用于根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是所述本地服務(wù)器端基于所述開發(fā)項目的應(yīng)用文件生成的;
根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是該開發(fā)項目在本地服務(wù)器端對應(yīng)生成的,當(dāng)本地?fù)碛性撻_發(fā)項目的各個文件時,該開發(fā)項目的各個文件緩存在本地服務(wù)器端,例如,當(dāng)手機(jī)終端使用微信時,微信對應(yīng)的各個文件緩存在相應(yīng)手機(jī)服務(wù)器端,根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,即是當(dāng)?shù)谝粦?yīng)用文件是編輯舊有的邏輯單元時,將第一應(yīng)用文件代替緩存文件中相應(yīng)未被編輯的舊有邏輯單元,當(dāng)?shù)谝粦?yīng)用文件是新建的文件即新建邏輯單元時,生成該新建邏輯單元在本地服務(wù)器端的保存路徑,并保存該新建邏輯單元與相應(yīng)路徑。
第一加載模塊30,用于加載第一緩存文件;
調(diào)用終端加載應(yīng)用,加載第一緩存文件,實現(xiàn)在不重啟線上機(jī)器時可直接加載本地全部的緩存文件,也可只是加載第一緩存文件中進(jìn)行更新了的第一應(yīng)用文件到相應(yīng)的本地緩存,終端加載應(yīng)用能夠直接執(zhí)行將第一緩存文件或者第一應(yīng)用文件的源代碼解析為類對象實例,如Java類對象實例。
調(diào)用模塊40,用于當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用。
當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用,即是當(dāng)加載和實例化源代碼后,提供相應(yīng)接口,調(diào)用加載后的第一緩存文件以供應(yīng)用,如圖12所示,當(dāng)檢測到當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用,從而實現(xiàn)第一緩存文件對應(yīng)的各個應(yīng)用與功能。
在本實施例中,通過接收模塊10,用于接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件;第一更新模塊20,用于根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是所述本地服務(wù)器端基于所述開發(fā)項目的應(yīng)用文件生成的;第一加載模塊30,用于加載第一緩存文件;第一調(diào)用模塊40,用于當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用。由于當(dāng)開發(fā)項目服務(wù)器端更新應(yīng)用文件時,將更新的應(yīng)用文件即第一應(yīng)用文件實時發(fā)送到本地服務(wù)器端并對應(yīng)更新本地緩存文件,實時調(diào)用本地服務(wù)器端的加載應(yīng)用加載解析本地緩存中的第一應(yīng)用文件,以供應(yīng)用,而不是對第一應(yīng)用文件進(jìn)行編譯、打包、部署后,本地服務(wù)器或機(jī)器重啟后去加載對應(yīng)部署的第一應(yīng)用文件,從而解決了現(xiàn)有技術(shù)中需重啟線上機(jī)器才能加載新開發(fā)的項目應(yīng)用文件,造成耗時耗力,用戶體驗差的技術(shù)問題。
進(jìn)一步地,在本發(fā)明一種熱部署裝置第一實施例的基礎(chǔ)上,提出熱部署裝置的第二實施例,在第二實施例中,所述第一應(yīng)用文件包括源代碼,所述本地服務(wù)器端包括敏捷開發(fā)語言Groovy類加載器,參照圖4,其特征在于,所述熱部署裝置還包括:
判斷模塊50,用于判斷第一應(yīng)用文件在本地服務(wù)器端緩存文件中是否存在對應(yīng)的本地應(yīng)用文件;
更新的應(yīng)用文件包括對應(yīng)用文件的創(chuàng)建、刪除,代碼編輯,刷新等常規(guī)操作,即是可新創(chuàng)建實現(xiàn)業(yè)務(wù)邏輯的代碼,刪除相應(yīng)的實現(xiàn)業(yè)務(wù)邏輯的代碼,在相應(yīng)邏輯區(qū)塊進(jìn)行代碼編輯等操作,當(dāng)在相應(yīng)邏輯區(qū)塊進(jìn)行代碼編輯操作,即是對應(yīng)用文件內(nèi)容進(jìn)行更改或者刪除操作時,由于應(yīng)用文件已經(jīng)存在,并存在于本地服務(wù)器端端緩存文件中,而只是對應(yīng)用文件的內(nèi)容進(jìn)行修改,此時第一應(yīng)用文件在本地服務(wù)器端存在對應(yīng)的緩存文件,當(dāng)新創(chuàng)建應(yīng)用文件時,由于文件是新創(chuàng)建的,在已緩存的開發(fā)項目中無該應(yīng)用文件存在,因而該創(chuàng)建的應(yīng)用文件在本地服務(wù)器端無對應(yīng)的緩存文件。
第二加載模塊60,當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將所述源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例。
由于更新的應(yīng)用文件即第一應(yīng)用文件包括對應(yīng)用文件的創(chuàng)建、即是可新創(chuàng)建實現(xiàn)業(yè)務(wù)的邏輯區(qū)塊,在相應(yīng)新創(chuàng)建的邏輯區(qū)塊進(jìn)行代碼編輯等操作,當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用敏捷開發(fā)語言Groovy類加載器,接收Groovy類加載器將各個源代碼對應(yīng)解析得到的類對象實例,Groovy類可直接對第一應(yīng)用文件中的代碼進(jìn)行編譯解析加載得到類對象實例,Groovy類加載器相比普通的類加載器可縮短編譯時間,更簡單方便的編譯加載源碼,因而實現(xiàn)本地服務(wù)器端對第一應(yīng)用文件進(jìn)行快速的編譯解析加載,而不是只能實現(xiàn)在本地服務(wù)器端接收開發(fā)項目服務(wù)器端已編譯加載完成的第一應(yīng)用文件,所述源代碼即是在開發(fā)項目過程中在相應(yīng)IDE界面編輯的代碼,類加載器讀取解析相應(yīng)源代碼到終端,得到對應(yīng)類對象實例,以供應(yīng)用。
在本實施例中,通過判斷模塊50,用于判斷第一應(yīng)用文件在本地服務(wù)器端緩存文件中是否存在對應(yīng)的本地應(yīng)用文件;第二加載模塊60,用于當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將所述源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例。當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,在終端即調(diào)用Groovy類加載器,Groovy類加載器可直接對第一應(yīng)用文件中的代碼進(jìn)行編譯解析加載,得到各個類對象實例,從而實現(xiàn)將第一應(yīng)用文件加載到終端,實現(xiàn)準(zhǔn)確在終端更新第一應(yīng)用文件,而不是只能實現(xiàn)在本地服務(wù)器端接收開發(fā)項目服務(wù)器端已編譯加載完成的第一應(yīng)用文件,從而可以節(jié)省項目新創(chuàng)建應(yīng)用文件后加載新創(chuàng)建的應(yīng)用文件過程需經(jīng)過編譯、打包、部署和重啟線上機(jī)器操作,確保本地服務(wù)器或機(jī)器在不重啟的條件下也能準(zhǔn)確加載在本地服務(wù)器端無對應(yīng)的緩存文件的第一應(yīng)用文件,提高開發(fā)效率,優(yōu)化用戶體驗。
進(jìn)一步地,在本發(fā)明一種熱部署裝置第一實施例的基礎(chǔ)上,提出熱部署裝置的第三實施例,在第三實施例中,所述熱部署裝置還包括:
生成模塊,用于獲取各個類對象實例,生成相應(yīng)的本地路徑;
保存模塊,用于保存各個類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端。
當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,將Groovy類加載器加載的本地服務(wù)器端類對象實例對應(yīng)生成加載后的第一緩存文件緩存在本地,即是第一緩存文件緩存的是加載后的對象實例,并生成加載后的第一緩存文件在本地服務(wù)器端的本地路徑或者本地地址,當(dāng)開發(fā)人員在相應(yīng)IDE界面在線開發(fā)新的應(yīng)用文件時,將在線創(chuàng)建的應(yīng)用文件實時的發(fā)送給本地服務(wù)器端,本地服務(wù)器端實時接收該在線創(chuàng)建的應(yīng)用文件,調(diào)用類加載器加載成本地類對象實例,保存本地類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端,當(dāng)項目再次開發(fā)其它應(yīng)用文件時,不需重新加載所述本地類對象實例生成的第一緩存文件,可直接根據(jù)加載后的第一緩存文件的本地路徑調(diào)用保存在本地服務(wù)器端的加載后的第一緩存文件。
在本實施例中,通過生成模塊,用于獲取各個類對象實例,生成相應(yīng)的本地路徑;保存模塊,用于保存各個類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端。由于當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,即是當(dāng)開發(fā)人員在相應(yīng)IDE界面在線創(chuàng)建新的應(yīng)用文件時,實時的發(fā)送給本地服務(wù)器端,本地服務(wù)器端實時接收該在線創(chuàng)建的應(yīng)用文件,調(diào)用類加載器加載成本地類對象實例,保存本地類對象實例生成的第一緩存文件與相應(yīng)的本地路徑到本地服務(wù)器端,當(dāng)項目再次開發(fā)其它應(yīng)用文件時,不需重新加載所述第一應(yīng)用文件,可直接根據(jù)第一緩存文件的本地路徑調(diào)用保存在本地服務(wù)器端的第一緩存文件,從而節(jié)約流程,減少耗時,提升開發(fā)效率。
進(jìn)一步地,在本發(fā)明一種熱部署裝置第一實施例的基礎(chǔ)上,提出熱部署裝置的第四實施例,參照圖5,在第四實施例中,所述第一更新模塊20包括:
獲取單元21,用于獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;
生成單元22,用于清除應(yīng)用歷史文件,將獲取的第一應(yīng)用文件加載代替應(yīng)用歷史文件,并對應(yīng)生成第一應(yīng)用文件在本地服務(wù)器端的路徑;
獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;即是沒有創(chuàng)建新的應(yīng)用文件,只是對已存在的應(yīng)用文件進(jìn)行修改時,由于本地服務(wù)器端已緩存未進(jìn)行修改的應(yīng)用文件,因而獲取該緩存文件中未進(jìn)行修改的該應(yīng)用文件即是應(yīng)用歷史文件,清除該應(yīng)用歷史文件,替換成修改后的應(yīng)用文件,并生成該修改后的應(yīng)用文件在本地服務(wù)器端的路徑。
保存單元23,用于保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地。
保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地服務(wù)器端,以供調(diào)用。
在本實施例中,通過獲取單元21,用于獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;生成單元22,用于清除應(yīng)用歷史文件,將獲取的第一應(yīng)用文件加載代替應(yīng)用歷史文件,并對應(yīng)生成第一應(yīng)用文件在本地服務(wù)器端的路徑;保存單元23,用于保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地。由于當(dāng)沒有創(chuàng)建新的應(yīng)用文件時,則加載替換緩存中的應(yīng)用文件即是邏輯單元文件,實現(xiàn)熱部署。
進(jìn)一步地,在本發(fā)明一種熱部署裝置第一實施例的基礎(chǔ)上,提出熱部署裝置的第五實施例,在第五實施例中,所述熱部署裝置20還包括:
獲取模塊,保存清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,獲取清除的應(yīng)用歷史文件,將清除的應(yīng)用歷史文件作為第二應(yīng)用文件;
保存清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,即是重新調(diào)用該應(yīng)用歷史文件指令時,調(diào)用清除的應(yīng)用歷史文件。
第二更新模塊,將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。
將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。即是支持歷史版本的回溯。
本發(fā)明通過獲取模塊,用于保存清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,如圖11所示,獲取清除的應(yīng)用歷史文件,將清除的應(yīng)用歷史文件作為第二應(yīng)用文件;第二更新模塊,用于將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。即是熱部署裝置支持歷史版本的回溯,而不是重啟機(jī)器再去加載應(yīng)用歷史文件,提升開發(fā)效率。
本發(fā)明還提供一種熱部署方法,該熱部署方法主要應(yīng)用于移動終端上,在熱部署方法第一實施例中,參照圖6,終端側(cè)設(shè)置有本地服務(wù)器端,所述熱部署方法包括:
步驟S10,接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件;
接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件,所述應(yīng)用文件包括各個開發(fā)項目中的邏輯單元或區(qū)塊,邏輯單元或區(qū)塊,指的是實現(xiàn)業(yè)務(wù)邏輯的代碼,即是邏輯單元或區(qū)塊由實現(xiàn)各個業(yè)務(wù)的代碼構(gòu)成,所述各個邏輯代碼包括Java代碼等,更新的應(yīng)用文件包括對應(yīng)用文件的創(chuàng)建、刪除,代碼編輯,刷新等常規(guī)操作,即是可新創(chuàng)建實現(xiàn)業(yè)務(wù)邏輯的代碼,如圖10所示,即是新創(chuàng)建邏輯單元,刪除相應(yīng)的實現(xiàn)業(yè)務(wù)邏輯的代碼,在相應(yīng)邏輯區(qū)塊進(jìn)行代碼編輯等操作,代碼編輯等在集成開發(fā)環(huán)境(IDE)界面上進(jìn)行,所述集成開發(fā)環(huán)境(IDE)界面上可進(jìn)行包括清除緩存,編輯,刪除等操作,所述IDE包括Wed(類)IDE等。當(dāng)項目開發(fā)人員可在IDE上更新相應(yīng)應(yīng)用文件后,相應(yīng)服務(wù)器端會實時檢測到有相應(yīng)的更新應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件,終端實時獲取得到更新應(yīng)用文件的訊息,進(jìn)而終端獲取第一應(yīng)用文件,具體流程架構(gòu)如圖9所示,管理模塊部署于開發(fā)服務(wù)器端,負(fù)責(zé)管理邏輯單元,提供邏輯單元創(chuàng)建、刪除,代碼編輯等常規(guī)功能即是對第一應(yīng)用文件的創(chuàng)建,刪除等,消息棧實時獲取管理模塊中第一應(yīng)用文件變化的訊息,核心模塊即是負(fù)責(zé)源碼遠(yuǎn)程加載服務(wù),執(zhí)行模塊部署于終端負(fù)責(zé)加載和實例化源碼,提供公共的接口。
步驟S20,根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是所述本地服務(wù)器端基于所述開發(fā)項目的應(yīng)用文件生成的;
根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是該開發(fā)項目在本地服務(wù)器端對應(yīng)生成的,當(dāng)本地?fù)碛性撻_發(fā)項目的各個文件時,該開發(fā)項目的各個文件緩存在本地服務(wù)器端,例如,當(dāng)手機(jī)終端使用微信時,微信對應(yīng)的各個文件緩存在相應(yīng)手機(jī)服務(wù)器端,根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,即是當(dāng)?shù)谝粦?yīng)用文件是編輯舊有的邏輯單元時,將第一應(yīng)用文件代替緩存文件中相應(yīng)未被編輯的舊有邏輯單元,當(dāng)?shù)谝粦?yīng)用文件是新建的文件即新建邏輯單元時,生成該新建邏輯單元在本地服務(wù)器端的保存路徑,并保存該新建邏輯單元與相應(yīng)路徑。
步驟S30,加載第一緩存文件;
調(diào)用終端加載應(yīng)用,加載第一緩存文件,實現(xiàn)在不重啟線上機(jī)器時可直接加載本地全部的緩存文件,也可只是加載第一緩存文件中進(jìn)行更新了的第一應(yīng)用文件到相應(yīng)的本地緩存,終端加載應(yīng)用能夠直接執(zhí)行將第一緩存文件或者第一應(yīng)用文件的源代碼解析為類對象實例,如Java類對象實例。
步驟S40,當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用。
當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用,即是當(dāng)加載和實例化源代碼后,提供相應(yīng)接口,調(diào)用加載后的第一緩存文件以供應(yīng)用,如圖12所示,當(dāng)檢測到當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用,從而實現(xiàn)第一緩存文件對應(yīng)的各個應(yīng)用與功能。
在本實施例中,通過接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件;根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端更新的緩存文件作為第一緩存文件,所述本地服務(wù)器端的緩存文件是所述本地服務(wù)器端基于所述開發(fā)項目的應(yīng)用文件生成的;加載第一緩存文件;當(dāng)檢測到調(diào)用第一緩存文件的指令時,調(diào)用加載后的第一緩存文件以供應(yīng)用。由于當(dāng)開發(fā)項目服務(wù)器端更新應(yīng)用文件時,將更新的應(yīng)用文件即第一應(yīng)用文件實時發(fā)送到本地服務(wù)器端并對應(yīng)更新本地緩存文件,實時調(diào)用本地服務(wù)器端的加載應(yīng)用加載解析本地緩存中的第一應(yīng)用文件,以供應(yīng)用,而不是對第一應(yīng)用文件進(jìn)行編譯、打包、部署后,本地服務(wù)器或機(jī)器重啟后去加載對應(yīng)部署的第一應(yīng)用文件,從而解決了現(xiàn)有技術(shù)中需重啟線上機(jī)器才能加載新開發(fā)的項目應(yīng)用文件,造成耗時耗力,用戶體驗差的技術(shù)問題。
進(jìn)一步地,在本發(fā)明一種熱部署方法第一實施例的基礎(chǔ)上,提出熱部署方法的第二實施例,在第二實施例中,所述第一應(yīng)用文件包括源代碼,所述本地服務(wù)器端包括敏捷開發(fā)語言Groovy類加載器,參照圖7,所述第一應(yīng)用文件包括源代碼,所述服務(wù)器端包括敏捷開發(fā)語言Groovy類加載器,所述接收開發(fā)項目服務(wù)器端實時發(fā)送的更新的應(yīng)用文件,將更新的應(yīng)用文件作為第一應(yīng)用文件步驟之后包括:
步驟S50,判斷第一應(yīng)用文件在本地服務(wù)器端緩存文件中是否存在對應(yīng)的本地應(yīng)用文件;
更新的應(yīng)用文件包括對應(yīng)用文件的創(chuàng)建、刪除,代碼編輯,刷新等常規(guī)操作,即是可新創(chuàng)建實現(xiàn)業(yè)務(wù)邏輯的代碼,刪除相應(yīng)的實現(xiàn)業(yè)務(wù)邏輯的代碼,在相應(yīng)邏輯區(qū)塊進(jìn)行代碼編輯等操作,當(dāng)在相應(yīng)邏輯區(qū)塊進(jìn)行代碼編輯操作,即是對應(yīng)用文件內(nèi)容進(jìn)行更改或者刪除操作時,由于應(yīng)用文件已經(jīng)存在,并存在于本地服務(wù)器端端緩存文件中,而只是對應(yīng)用文件的內(nèi)容進(jìn)行修改,此時第一應(yīng)用文件在本地服務(wù)器端存在對應(yīng)的緩存文件,當(dāng)新創(chuàng)建應(yīng)用文件時,由于文件是新創(chuàng)建的,在已緩存的開發(fā)項目中無該應(yīng)用文件存在,因而該創(chuàng)建的應(yīng)用文件在本地服務(wù)器端無對應(yīng)的緩存文件。
步驟S60,當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將所述源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例。
由于更新的應(yīng)用文件即第一應(yīng)用文件包括對應(yīng)用文件的創(chuàng)建、即是可新創(chuàng)建實現(xiàn)業(yè)務(wù)的邏輯區(qū)塊,在相應(yīng)新創(chuàng)建的邏輯區(qū)塊進(jìn)行代碼編輯等操作,當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用敏捷開發(fā)語言Groovy類加載器,接收Groovy類加載器將各個源代碼對應(yīng)解析得到的類對象實例,Groovy類可直接對第一應(yīng)用文件中的代碼進(jìn)行編譯解析加載得到類對象實例,Groovy類加載器相比普通的類加載器可縮短編譯時間,更簡單方便的編譯加載源碼,因而實現(xiàn)本地服務(wù)器端對第一應(yīng)用文件進(jìn)行快速的編譯解析加載,而不是只能實現(xiàn)在本地服務(wù)器端接收開發(fā)項目服務(wù)器端已編譯加載完成的第一應(yīng)用文件,所述源代碼即是在開發(fā)項目過程中在相應(yīng)IDE界面編輯的代碼,類加載器讀取解析相應(yīng)源代碼到終端,得到對應(yīng)類對象實例,以供應(yīng)用。
在本實施例中,通過判斷第一應(yīng)用文件在本地服務(wù)器端緩存文件中是否存在對應(yīng)的本地應(yīng)用文件;當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將所述源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例。當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,在終端即調(diào)用Groovy類加載器,Groovy類加載器可直接對第一應(yīng)用文件中的代碼進(jìn)行編譯解析加載,得到各個類對象實例,從而實現(xiàn)將第一應(yīng)用文件加載到終端,實現(xiàn)準(zhǔn)確在終端更新第一應(yīng)用文件,而不是只能實現(xiàn)在本地服務(wù)器端接收開發(fā)項目服務(wù)器端已編譯加載完成的第一應(yīng)用文件,從而可以節(jié)省項目新創(chuàng)建應(yīng)用文件后加載新創(chuàng)建的應(yīng)用文件過程需經(jīng)過編譯、打包、部署和重啟線上機(jī)器操作,確保本地服務(wù)器或機(jī)器在不重啟的條件下也能準(zhǔn)確加載在本地服務(wù)器端無對應(yīng)的緩存文件的第一應(yīng)用文件,提高開發(fā)效率,優(yōu)化用戶體驗。
進(jìn)一步地,在本發(fā)明一種熱部署方法第一實施例的基礎(chǔ)上,提出熱部署方法的第三實施例,在第三實施例中,所述當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,調(diào)用Groovy類加載器,接收Groovy類加載器將各個源代碼對應(yīng)解析加載得到的各個類對象實例,以供終端調(diào)用各個類對象實例步驟之后包括:
獲取各個類對象實例,生成相應(yīng)的本地路徑;
保存各個類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端。
當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,將Groovy類加載器加載的本地服務(wù)器端類對象實例對應(yīng)生成加載后的第一緩存文件緩存在本地,即是第一緩存文件緩存的是加載后的對象實例,并生成加載后的第一緩存文件在本地服務(wù)器端的本地路徑或者本地地址,當(dāng)開發(fā)人員在相應(yīng)IDE界面在線開發(fā)新的應(yīng)用文件時,將在線創(chuàng)建的應(yīng)用文件實時的發(fā)送給本地服務(wù)器端,本地服務(wù)器端實時接收該在線創(chuàng)建的應(yīng)用文件,調(diào)用類加載器加載成本地類對象實例,保存本地類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端,當(dāng)項目再次開發(fā)其它應(yīng)用文件時,不需重新加載所述本地類對象實例生成的第一緩存文件,可直接根據(jù)加載后的第一緩存文件的本地路徑調(diào)用保存在本地服務(wù)器端的加載后的第一緩存文件。
在本實施例中,通過獲取各個類對象實例,生成相應(yīng)的本地路徑;保存各個類對象實例與相應(yīng)的本地路徑到本地服務(wù)器端。由于當(dāng)?shù)谝粦?yīng)用文件在本地服務(wù)器端的緩存文件中無對應(yīng)的本地應(yīng)用文件時,即是當(dāng)開發(fā)人員在相應(yīng)IDE界面在線創(chuàng)建新的應(yīng)用文件時,實時的發(fā)送給本地服務(wù)器端,本地服務(wù)器端實時接收該在線創(chuàng)建的應(yīng)用文件,調(diào)用類加載器加載成本地類對象實例,保存本地類對象實例生成的第一緩存文件與相應(yīng)的本地路徑到本地服務(wù)器端,當(dāng)項目再次開發(fā)其它應(yīng)用文件時,不需重新加載所述第一應(yīng)用文件,可直接根據(jù)第一緩存文件的本地路徑調(diào)用保存在本地服務(wù)器端的第一緩存文件,從而節(jié)約流程,減少耗時,提升開發(fā)效率。
進(jìn)一步地,在本發(fā)明一種熱部署方法第一實施例的基礎(chǔ)上,提出熱部署方法的第四實施例,參照圖8,在第四實施例中,所述根據(jù)第一應(yīng)用文件對應(yīng)實時更新本地服務(wù)器端的緩存文件步驟包括:
步驟S21,獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;
步驟S22,清除應(yīng)用歷史文件,將獲取的第一應(yīng)用文件加載代替應(yīng)用歷史文件,并對應(yīng)生成第一應(yīng)用文件在本地服務(wù)器端的路徑;
獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;即是沒有創(chuàng)建新的應(yīng)用文件,只是對已存在的應(yīng)用文件進(jìn)行修改時,由于本地服務(wù)器端已緩存未進(jìn)行修改的應(yīng)用文件,因而獲取該緩存文件中未進(jìn)行修改的該應(yīng)用文件即是應(yīng)用歷史文件,清除該應(yīng)用歷史文件,替換成修改后的應(yīng)用文件,并生成該修改后的應(yīng)用文件在本地服務(wù)器端的路徑。
步驟S23,保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地。
保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地服務(wù)器端,以供調(diào)用。
在本實施例中,通過獲取本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件,將本地服務(wù)器端緩存文件中第一應(yīng)用文件對應(yīng)的歷史文件作為應(yīng)用歷史文件;清除應(yīng)用歷史文件,將獲取的第一應(yīng)用文件加載代替應(yīng)用歷史文件,并對應(yīng)生成第一應(yīng)用文件在本地服務(wù)器端的路徑;保存第一應(yīng)用文件與第一應(yīng)用文件在本地服務(wù)器端的路徑到本地。由于當(dāng)沒有創(chuàng)建新的應(yīng)用文件時,則加載替換緩存中的應(yīng)用文件即是邏輯單元文件,實現(xiàn)熱部署。
進(jìn)一步地,在本發(fā)明一種熱部署方法第一實施例的基礎(chǔ)上,提出熱部署方法的第五實施例,參照圖10,在第五實施例中,所述熱部署方法還包括:
清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,獲取清除的應(yīng)用歷史文件,將清除的應(yīng)用歷史文件作為第二應(yīng)用文件;
保存清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,即是重新調(diào)用該應(yīng)用歷史文件指令時,調(diào)用清除的應(yīng)用歷史文件。
將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。
將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。即是支持歷史版本的回溯。
本發(fā)明通過保存清除的應(yīng)用歷史文件,當(dāng)檢測到應(yīng)用歷史文件回溯指令時,如圖11所示,獲取清除的應(yīng)用歷史文件,將清除的應(yīng)用歷史文件作為第二應(yīng)用文件;將第二應(yīng)用文件代替第一應(yīng)用文件,根據(jù)第二應(yīng)用文件對應(yīng)更新本地服務(wù)器端的緩存文件,將本地服務(wù)器端對應(yīng)更新的緩存文件作為第二緩存文件。即是熱部署方法支持歷史版本的回溯,而不是重啟機(jī)器再去加載應(yīng)用歷史文件,提升開發(fā)效率。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。