SpringBoot學(xué)習(xí)歷程(三):Devtools熱部署

所謂的熱部署就是在你修改了后端代碼后不需要手動(dòng)重啟棉安,工具會(huì)幫你快速的自動(dòng)重啟是修改生效。其深層原理是使用了兩個(gè)ClassLoader拿诸,一個(gè)Classloader加載那些不會(huì)改變的類(lèi)(第三方Jar包)愧膀,另一個(gè)ClassLoader加載會(huì)更改的類(lèi)呛凶,稱(chēng)為restart ClassLoader,這樣在有代碼更改的時(shí)候灭抑,原來(lái)的restart ClassLoader 被丟棄十艾,重新創(chuàng)建一個(gè)restart ClassLoader,由于需要加載的類(lèi)相比較少腾节,所以實(shí)現(xiàn)了較快的重啟時(shí)間忘嫉。

1. 引入Spring-Boot-devtools

<!-- 引入熱部署依賴(lài) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>true</scope>
    <optional>true</optional>
</dependency>


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 沒(méi)有該配置荤牍,devtools 不生效 -->
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

devtools會(huì)監(jiān)聽(tīng)classpath下的文件變動(dòng),并且會(huì)立即重啟應(yīng)用(發(fā)生在保存時(shí)機(jī))庆冕。
==注意:==
《fork》標(biāo)簽的作用不太確定康吵,有說(shuō)是:避免 devtools 傳遞性的被應(yīng)用到項(xiàng)目中其他的 module。

2. 熱部署生效

  1. 在配置文件application.yml中添加 :
spring:
  devtools:
    restart:
      enabled: true  #設(shè)置開(kāi)啟熱部署
  freemarker:
    cache: false    #頁(yè)面不加載緩存访递,修改即時(shí)生效
  1. 在File >>> Settings >>> Build,Execution,Deployment >>> Compiler 中找到Build project automatically 并勾選晦嵌。


    在這里插入圖片描述
  2. 用Ctrl+Shift+A 快捷鍵打開(kāi) Registry,點(diǎn)擊之后找到"compiler.automake.allow.when.app.running"拷姿,勾選惭载,【Close】關(guān)閉。
  3. 重啟IDEA即可响巢。

3. springboot提供的屬性

#---------------------------------------- 
#開(kāi)發(fā)人員屬性
#----- -----------------------------------
#DEVTOOLS(DevToolsProperties)
spring.devtools.add-properties = true #是否啟用開(kāi)發(fā)屬性默認(rèn)值描滔。
spring.devtools.livereload.enabled = true #是否啟用與livereload.com兼容的服務(wù)器。
spring.devtools.livereload.port = 35729 #服務(wù)器端口踪古。
spring.devtools.restart.additional-exclude = #應(yīng)當(dāng)從觸發(fā)完全重啟中排除的其他模式含长。
spring.devtools.restart.additional-paths = #監(jiān)視更改的其他路徑。
spring.devtools.restart.enabled = true #是否啟用自動(dòng)重啟灾炭。
spring.devtools.restart.exclude= Tests.class
spring.devtools.restart.log-condition-evaluation-delta = true #是否在重新啟動(dòng)時(shí)記錄條件評(píng)估增量茎芋。
spring.devtools.restart.poll-interval = 1s #等待兩次輪詢(xún)類(lèi)路徑更改之間的時(shí)間颅眶。
spring.devtools.restart.quiet-period = 400ms #觸發(fā)重新啟動(dòng)之前蜈出,無(wú)需對(duì)類(lèi)路徑進(jìn)行任何更改所需的安靜時(shí)間。
spring.devtools.restart.trigger-file =#更改后觸發(fā)重新啟動(dòng)檢查的特定文件的名稱(chēng)涛酗。如果未指定铡原,則任何類(lèi)路徑文件更改都會(huì)觸發(fā)重新啟動(dòng)。

#REMOTE DEVTOOLS(RemoteDevToolsProperties)
 spring.devtools.remote.context-path = /商叹。~~ spring-boot燕刻!?#用于處理遠(yuǎn)程連接的上下文路徑。
spring.devtools.remote.proxy.host = #用于連接到遠(yuǎn)程應(yīng)用程序的代理主機(jī)剖笙。
spring.devtools.remote.proxy.port = #用于連接到遠(yuǎn)程應(yīng)用程序的代理的端口卵洗。
spring.devtools.remote.restart.enabled = true #是否啟用遠(yuǎn)程重啟。
spring.devtools.remote.secret = #建立連接所需的共享機(jī)密(啟用遠(yuǎn)程支持所必需)弥咪。
spring.devtools.remote.secret頭名= X-AUTH-TOKEN #用于傳輸共享密鑰的HTTP標(biāo)頭过蹂。

4. jrebel插件

livereload ,jrebel之類(lèi)的插件也可以聚至,但是個(gè)人感覺(jué)沒(méi)有devtools強(qiáng)大酷勺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市扳躬,隨后出現(xiàn)的幾起案子脆诉,更是在濱河造成了極大的恐慌甚亭,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件击胜,死亡現(xiàn)場(chǎng)離奇詭異亏狰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)偶摔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)骚揍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人啰挪,你說(shuō)我怎么就攤上這事信不。” “怎么了亡呵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵抽活,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我锰什,道長(zhǎng)下硕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任汁胆,我火速辦了婚禮梭姓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嫩码。我一直安慰自己誉尖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布铸题。 她就那樣靜靜地躺著铡恕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丢间。 梳的紋絲不亂的頭發(fā)上探熔,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音烘挫,去河邊找鬼诀艰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饮六,可吹牛的內(nèi)容都是我干的其垄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼喜滨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼捉捅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起虽风,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤棒口,失蹤者是張志新(化名)和其女友劉穎寄月,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體无牵,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漾肮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茎毁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片克懊。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖七蜘,靈堂內(nèi)的尸體忽然破棺而出谭溉,到底是詐尸還是另有隱情,我是刑警寧澤橡卤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布扮念,位于F島的核電站,受9級(jí)特大地震影響碧库,放射性物質(zhì)發(fā)生泄漏柜与。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一嵌灰、第九天 我趴在偏房一處隱蔽的房頂上張望弄匕。 院中可真熱鬧,春花似錦沽瞭、人聲如沸迁匠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)柒瓣。三九已至,卻和暖如春吠架,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搂鲫。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工傍药, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人魂仍。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓拐辽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親擦酌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子俱诸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容