SpringBoot項(xiàng)目在IntelliJ IDEA中如何實(shí)現(xiàn)熱部署
spring-boot-devtools是一個(gè)為開發(fā)者服務(wù)的一個(gè)模塊,其中最重要的功能就是自動(dòng)應(yīng)用代碼更改到最新的App上面去。
原理是在發(fā)現(xiàn)代碼有更改之后,重新啟動(dòng)應(yīng)用,但是速度比手動(dòng)停止后再啟動(dòng)更快。其深層原理是使用了兩個(gè)ClassLoader,一個(gè)Classloader加載那些不會(huì)改變的類(第三方Jar包),另一個(gè)ClassLoader加載會(huì)更改的類,稱為restart ClassLoader
,這樣在有代碼更改的時(shí)候,原來的restart ClassLoader被丟棄,重新創(chuàng)建一個(gè)restart ClassLoader,由于需要加載的類相比較少,所以實(shí)現(xiàn)了較快的重啟時(shí)間。即devtools會(huì)監(jiān)聽classpath下的文件變動(dòng),并且會(huì)立即重啟應(yīng)用(發(fā)生在保存時(shí)機(jī))
一、開啟idea自動(dòng)make功能
1、CTRL + SHIFT + A --> 查找make project automatically --> 選中

2、CTRL + SHIFT + A --> 查找Registry --> 找到并勾選compiler.automake.allow.when.app.running

最后重啟idea
二、使用spring-boot-1.3開始有的熱部署功能
1、加maven依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
2、開啟熱部署
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>//該配置必須
</configuration>
</plugin>
</plugins>
</build>
三、Chrome禁用緩存
F12(或Ctrl+Shift+J或Ctrl+Shift+I)--> NetWork --> Disable Cache(while DevTools is open)

至此,在idea中就可以愉快的修改代碼了,修改后可以及時(shí)看到效果,無須手動(dòng)重啟和清除瀏覽器緩存。
測(cè)試方法:
1.修改類-->保存:應(yīng)用會(huì)重啟
2.修改配置文件-->保存:應(yīng)用會(huì)重啟
3.修改頁面-->保存:應(yīng)用會(huì)重啟,頁面會(huì)刷新(原理是將spring.thymeleaf.cache設(shè)為false)
不能使用分析:
1.對(duì)應(yīng)的spring-boot版本是否正確,我這里使用的是1.5.3.RELEASE版本;
2.是否加入plugin了,以及屬性<fork>true</fork>
3.Intellij IDEA是否開啟了Make Project Automatically。
4.如果設(shè)置SpringApplication.setRegisterShutdownHook(false),則自動(dòng)重啟將不起作用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
struts2+jsp+jquery+Jcrop實(shí)現(xiàn)圖片裁剪并上傳實(shí)例
本篇文章主要介紹了struts2+jsp+jquery+Jcrop實(shí)現(xiàn)圖片裁剪并上傳實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
利用spring?boot+WebSocket實(shí)現(xiàn)后臺(tái)主動(dòng)消息推送功能
目前對(duì)于服務(wù)端向客戶端推送數(shù)據(jù),常用技術(shù)方案有輪詢、websocket等,下面這篇文章主要給大家介紹了關(guān)于利用spring?boot+WebSocket實(shí)現(xiàn)后臺(tái)主動(dòng)消息推送功能的相關(guān)資料,需要的朋友可以參考下2022-04-04
springboot?vue項(xiàng)目管理前后端實(shí)現(xiàn)編輯功能
這篇文章主要為大家介紹了springboot?vue項(xiàng)目管理前后端實(shí)現(xiàn)編輯功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
java中Sources目錄Resources目錄的區(qū)別解讀
這篇文章主要介紹了java中Sources目錄Resources目錄的區(qū)別解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
Eclipse不自動(dòng)編譯java文件的終極解決方法
這篇文章主要介紹了Eclipse不自動(dòng)編譯java文件的終極解決方法,需要的朋友可以參考下2015-12-12
IDEA提示:Boolean method ‘xxx‘ is always&nb
這篇文章主要介紹了IDEA提示:Boolean method ‘xxx‘ is always inverted問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

