熱部署是什么
“專業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個(gè)人一直以來(lái)堅(jiān)持追求的企業(yè)文化。 創(chuàng)新互聯(lián)公司是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶需求為導(dǎo)向,結(jié)合用戶體驗(yàn)與視覺(jué)傳達(dá),提供有針對(duì)性的項(xiàng)目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場(chǎng),引領(lǐng)市場(chǎng)!大家都知道在項(xiàng)目開(kāi)發(fā)過(guò)程中,常常會(huì)改動(dòng)頁(yè)面數(shù)據(jù)或者修改數(shù)據(jù)結(jié)構(gòu),為了顯示改動(dòng)效果,往往需要重啟應(yīng)用查看改變效果,其實(shí)就是重新編譯生成了新的 Class 文件,這個(gè)文件里記錄著和代碼等對(duì)應(yīng)的各種信息,然后 Class 文件將被虛擬機(jī)的 ClassLoader 加載。
而熱部署正是利用了這個(gè)特點(diǎn),它監(jiān)聽(tīng)到如果有 Class 文件改動(dòng)了,就會(huì)創(chuàng)建一個(gè)新的 ClaassLoader 進(jìn)行加載該文件,經(jīng)過(guò)一系列的過(guò)程,最終將結(jié)果呈現(xiàn)在我們眼前。
類加載機(jī)制
Java 中的類經(jīng)過(guò)編譯器可以把代碼編譯為存儲(chǔ)字節(jié)碼的 Class 文件,該 Class 文件存儲(chǔ)了各種信息,最終要加載到虛擬機(jī)中運(yùn)行使用。
類加載機(jī)制(摘自《深入理解 Java 虛擬機(jī)》)
虛擬機(jī)把描述類的數(shù)據(jù)從 Class 文件加載到內(nèi)存中,并對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)、轉(zhuǎn)換解析和初始化,最終形成可以被虛擬機(jī)直接使用的 Java 類型。
Spring Boot 實(shí)現(xiàn)熱部署
Spring Boot 實(shí)現(xiàn)熱部署很簡(jiǎn)單,我們使用上一章創(chuàng)建的項(xiàng)目 Springboot 創(chuàng)建簡(jiǎn)單的 web 交互應(yīng)用 來(lái)演示。
springloaded
在 POM 文件中添加依賴
org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.6.RELEASE