javascript
idea修改代码后不重启项目_使用DevTool实现SpringBoot项目热部署
前言
最近在開發(fā)的時候,每次改動代碼都需要啟動項目,因為有的時候改動的服務(wù)比較多,所以重啟的次數(shù)也就比較多了,想著每次重啟等待也挺麻煩的,就打算使用DevTools工具實現(xiàn)項目的熱部署
熱部署是什么
大家都知道在項目開發(fā)過程中,常常會改動頁面數(shù)據(jù)或者修改數(shù)據(jù)結(jié)構(gòu),為了顯示改動效果,往往需要重啟應(yīng)用查看改變效果,其實就是重新編譯生成了新的Class文件,這個文件里記錄著和代碼等對應(yīng)的各種信息,然后Class文件將被虛擬機的ClassLoader加載。
而熱部署正是利用了這個特點,它監(jiān)聽到如果有Class文件改動了,就會創(chuàng)建一個新的ClaassLoader進行加載該文件,經(jīng)過一系列的過程,最終將結(jié)果呈現(xiàn)在我們眼前
類加載機制
Java中的類經(jīng)過編譯器可以把代碼編譯為存儲字節(jié)碼的Class文件,該Class文件存儲了各種信息,最終要加載到虛擬機中運行使用。類加載機制(摘自《深入理解 Java 虛擬機》)虛擬機把描述類的數(shù)據(jù)從Class文件加載到內(nèi)存中,并對數(shù)據(jù)進行校驗、轉(zhuǎn)換解析和初始化,最終形成可以被虛擬機直接使用的Java類型。
添加依賴
org.springframework.bootspring-boot-devtoolstrueDevTools的配置
#熱部署生效spring.devtools.restart.enabled: true#設(shè)置重啟的目錄spring.devtools.restart.additional-paths: src/main/java#classpath目錄下的WEB-INF文件夾內(nèi)容修改不重啟spring.devtools.restart.exclude: WEB-INF/**IDEA需要的配置
當(dāng)我們修改了Java類后,IDEA默認(rèn)是不自動編譯的,而spring-boot-devtools又是監(jiān)測classpath下的文件發(fā)生變化才會重啟應(yīng)用,所以需要設(shè)置IDEA的自動編譯:
- File-Settings-Compiler-Build Project automatically
- ctrl + shift + alt + /,選擇Registry,勾上 compiler.automake.allow.when.app.running
總結(jié)
以上是生活随笔為你收集整理的idea修改代码后不重启项目_使用DevTool实现SpringBoot项目热部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css中变形,css3中变形处理
- 下一篇: html字体闪烁模板,CSS+JS阴影闪