一篇文章帶你搞定SpringBoot不重啟項(xiàng)目實(shí)現(xiàn)修改靜態(tài)資源
一、通過配置文件控制靜態(tài)資源的熱部署
在配置文件 application.properties
中添加:
#表示從這個(gè)默認(rèn)不觸發(fā)重啟的目錄中除去static目錄 spring.devtools.restart.exclude=classpath:/static/**
或者使用:
#表示將static目錄加入到修改資源會(huì)重啟的目錄中來 spring.devtools.restart.additional-paths=src/main/resource/static
此時(shí)對(duì)static 目錄下的靜態(tài)資源文件做修改,點(diǎn)擊構(gòu)建,則會(huì)達(dá)到和熱部署一樣的作用效果
但是這兩種方法用處不大,平時(shí)我們也不可能修改一行代碼就重啟一次項(xiàng)目,所以可以通過spring.devtools.restart.trigger-file
,通過一個(gè)文件來控制是否重啟項(xiàng)目,當(dāng)該文件改變時(shí)(同時(shí)項(xiàng)目代碼有所改動(dòng))項(xiàng)目才會(huì)重啟,否則不會(huì)重啟項(xiàng)目。
二、通過 LiveReload 插件控制靜態(tài)文件的熱部署
前面雖然可以通過配置解決靜態(tài)文件的熱部署問題,但是沒有必要!因?yàn)殪o態(tài)資源文件發(fā)生變化后不需要編譯,按理說保存后刷新下就可以訪問到了。
devtools 中默認(rèn)嵌入了 LiveReload 服務(wù)器,利用 LiveReload 可以實(shí)現(xiàn)靜態(tài)文件的熱部署,LiveReload 可以在資源發(fā)生變化時(shí)自動(dòng)觸發(fā)瀏覽器更新,LiveReload 支持 Chrome、Firefox 以及 Safari 。以 Chrome 為例,在 Chrome 應(yīng)用商店搜索 LiveReload ,結(jié)果如下圖:
在瀏覽器中打開項(xiàng)目的頁(yè)面,然后點(diǎn)擊瀏覽器右上角的 LiveReload 按鈕,打開 LiveReload 連接。
注意:
LiveReload 是和瀏覽器選項(xiàng)卡綁定在一起的,在哪個(gè)選項(xiàng)卡中打開了 LiveReload,就在哪個(gè)選項(xiàng)卡中訪問頁(yè)面,這樣才有效果
需要注意這里同樣需要點(diǎn)擊這個(gè)圖標(biāo)進(jìn)行構(gòu)建:
如果不想使用這個(gè)功能也可以在 application.properties 中進(jìn)行配置:
#禁用 LiveReload 功能 spring.devtools.livereload.enabled=false
三、配置 IDEA 即時(shí)編譯
eclipse 保存既編譯,idea 會(huì)自動(dòng)保存,運(yùn)行時(shí)會(huì)先編譯再運(yùn)行,所以造成有時(shí)感覺IDEA 啟動(dòng)項(xiàng)目比較慢
如果不想點(diǎn)擊上面的圖標(biāo),想讓它自己編譯運(yùn)行可以:(一般情況不建議改成即時(shí)編譯)
(1)勾選 Build project automatically
(2)Ctrl+Alt+Shift+/
呼出:Registry,回車勾選如圖所示選項(xiàng)
然后點(diǎn)擊 close,然后就設(shè)置成功了,此時(shí)配合 LiveReload(需要啟動(dòng)),代碼將會(huì)直接反應(yīng)到瀏覽器中。(注意需要反應(yīng)一小會(huì)才可以看到結(jié)果)
四、禁用熱部署自動(dòng)重啟
通過 application.properties 中配置:
#禁用熱部署,自動(dòng)重啟功能 spring.devtools.restart.enabled=false
也可以在 SpringBoot 引導(dǎo)類中配置:
//設(shè)置關(guān)閉熱部署 System.setProperty("spring.devtools.restart.enabled","false");
五、項(xiàng)目重啟中的全局配置
當(dāng)有多個(gè)SpringBoot 模塊時(shí),可以通過全局配置解決項(xiàng)目重啟的熱部署問題。
在當(dāng)前用戶目錄下,新建.spring-boot-devtools.properties
:寫入
spring.devtools.restart.trigger-file=.trigger-file
此時(shí),只有trigger-file
文件發(fā)生變化,項(xiàng)目才會(huì)重新啟動(dòng)
這個(gè)配置文件對(duì)于電腦上任何使用 devtools 的模塊都有效
感覺這有點(diǎn)麻煩,感覺這種設(shè)置針對(duì)的是第三步中設(shè)置的即時(shí)編譯,如果不設(shè)置即時(shí)編譯,那直接點(diǎn) idea 上面那個(gè)小錘子圖標(biāo)(Build Project)即可。
到此這篇關(guān)于一篇文章帶你搞定SpringBoot不重啟項(xiàng)目實(shí)現(xiàn)修改靜態(tài)資源的文章就介紹到這了,更多相關(guān)SpringBoot不重啟修改靜態(tài)資源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
RabbitMQ交換機(jī)使用場(chǎng)景和消息可靠性總結(jié)分析
這篇文章主要為大家介紹了RabbitMQ交換機(jī)使用場(chǎng)景和消息可靠性總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Spring session 獲取當(dāng)前賬戶登錄數(shù)的實(shí)例代碼
這篇文章主要介紹了Spring session 獲取當(dāng)前賬戶登錄數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Netty中ChannelPoolHandler調(diào)用處理程序詳解
這篇文章主要介紹了Netty中ChannelPoolHandler調(diào)用處理程序詳解,Netty 是基于 Java NIO 的異步事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用框架,使用 Netty 可以快速開發(fā)網(wǎng)絡(luò)應(yīng)用,Netty 提供了高層次的抽象來簡(jiǎn)化 TCP 和 UDP 服務(wù)器的編程,但是你仍然可以使用底層的 API,需要的朋友可以參考下2023-11-11Java獲取json數(shù)組對(duì)象的實(shí)例講解
下面小編就為大家分享一篇Java獲取json數(shù)組對(duì)象的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03Spring?Boot自定義?Starter并推送到遠(yuǎn)端公服的詳細(xì)代碼
這篇文章主要介紹了Spring?Boot自定義?Starter并推送到遠(yuǎn)端公服,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09spring security獲取用戶信息為null或者串值的解決
這篇文章主要介紹了spring security獲取用戶信息為null或者串值的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03