一。什么是熱部署乾巧?
1.熱部署萄金,就是在應(yīng)用正在運(yùn)行的時候升級軟件,卻不需要重啟應(yīng)用县好。
2.在平時編寫代碼的時候,常常會出現(xiàn)我們只是簡單把打印信息改變了暖混,就需要重新部署缕贡,如果要改變這樣的方式,就需要用到熱部署拣播。
3.使用devtools這種方式可以實(shí)現(xiàn)大部分代碼的熱部署
二晾咪。認(rèn)識spring-boot-devtools
1.spring-boot-devtools 是一個為開發(fā)者服務(wù)的一個模塊,其中最重要的功能就是自動應(yīng)用代碼更改到最新的App上面去贮配。原理是在發(fā)現(xiàn)代碼有更改之后谍倦,重新啟動應(yīng)用,但是速度比手動停止后再啟動還要更快泪勒,更快指的不是節(jié)省出來的手工操作的時間昼蛀。
2.其深層原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方Jar包)圆存,另一個ClassLoader加載會更改的類叼旋,稱為 restart ClassLoader ,這樣在有代碼更改的時候沦辙,原來的restart ClassLoader 被丟棄夫植,重新創(chuàng)建一個restart ClassLoader,由于需要加載的類相比較少油讯,所以實(shí)現(xiàn)了較快的重啟時間(5秒以內(nèi))详民。
三。使用方法
1.在項目中的pom.xml中plugin里添加依賴
2.build節(jié)點(diǎn)
3.開啟IDEA的自動構(gòu)建功能陌兑,如下圖所示:
4.Intellij IEDA 使用ctrl+shi+a 快捷鍵搜索Registry沈跨,選擇搜索出來的第一個如下圖,回車
5.勾選下圖中的complier.automake.allow.when.app.running
7.配置完成兔综,重新啟動項目可以試著修改代碼饿凛,熱部署成功隅俘,也加快了開發(fā)速度。
四笤喳。說明
devtools會監(jiān)聽classpath下的文件變動为居,并且會立即重啟應(yīng)用(發(fā)生在保存時機(jī)),注意:因?yàn)槠洳捎玫奶摂M機(jī)機(jī)制杀狡,該項重啟是很快的蒙畴。
devtools可以實(shí)現(xiàn)頁面熱部署(即頁面修改后會立即生效,這個可以直接在applicaon.properes文件中配置spring.thymeleaf.cache=false來實(shí)現(xiàn)(這里注意不同的模板配置不一樣)呜象。
修改以下代碼都不需要重啟服務(wù)器:修改類膳凝、配置文件、頁面文件(原理是將spring.thymeleaf.cache設(shè)為false)之后ctrl+s:應(yīng)用會重啟恭陡。