javascript
idea修改代码后没有重新编译_SpringBoot中实现代码修改之后的自动更新与热加载...
在實際的開發(fā)過程中,我們經(jīng)常修改代碼之后,手動的重啟項目,查看修改效果。那么有沒有一種方式能夠快速的、自動的幫我們將修改代碼自動更新,避免手動重啟,從而提高開發(fā)效率呢?是有的,對于這個功能很多人對功能的叫法有爭議,也沒有權(quán)威的定義,筆者知道的就有:熱啟動、熱加載、熱更新、熱部署。筆者覺得“熱加載”可能更準(zhǔn)確一些。但是叫什么并不重要,實現(xiàn)了最重要!
1.1.引入devtools的maven依賴
org.springframework.boot spring-boot-devtools truespring-boot-devtools從名稱就可以看出來,是開發(fā)者工具包,其主要的功能就是實現(xiàn)熱加載。其實現(xiàn)原理就是兩個ClassLoader,一個負(fù)責(zé)加載那些不會經(jīng)常改變的文件,比如:第三方j(luò)ar包;一個負(fù)責(zé)加載可能經(jīng)常改變的類,比如我們自己在項目中寫的代碼,被稱為restart ClassLoader。當(dāng)有代碼發(fā)生改變的時候,重建一個restart ClassLoader,原有的restart ClassLoader被丟掉。由于每次重新加載的內(nèi)容較少,所以速度比手動重啟更快一些。
org.springframework.boot spring-boot-maven-plugin true在 plugin 中配置另外一個屬性 fork,并且配置為 true。
1.2.設(shè)置IDEA
運行時編譯配置:組合鍵:“Shift+Ctrl+Alt+/” ,選擇 “Registry” ,選中打勾 “compiler.automake.allow.when.app.running” 。
自動化編譯配置: “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,選中打勾 “Build project automatically” 。這是一種重新自動化的編譯整體項目的方法。但是筆者一般不這么做,因為IDEA的文件是自動保存的,你想修改一個字符串,有可能你只修改完成第一個字符它就重新編譯了。所以,筆者一般修改完成之后,使用Ctrl + Shift + F9快捷鍵對修改類重新編譯,而不是做項目的自動化整體編譯。
1.3 進(jìn)行一下application.properties配置
在有些版本我們需要配置熱加載生效的開關(guān),使其值等于true。下文是properties格式配置,喜歡yml格式的同學(xué)可以自行調(diào)整一下。
#熱加載生效spring.devtools.restart.enabled=true#額外新增的熱加載目錄spring.devtools.restart.additional-paths= src/main/java#熱加載排除目錄#spring.devtools.restart.exclude=默認(rèn)情況下,支持熱加載的目錄如下,如果需要其它目錄下文件支持熱加載需要手動配置:
改一下代碼,看看會不會生效。通常不生效的原因有兩種:
- JDK編譯版本和運行版本不同意,自行學(xué)習(xí)一下IDEA環(huán)境下JDK配置
- 瀏覽器緩存或者其他的緩存軟件導(dǎo)致的問題
寫在最后
點擊我的頭像進(jìn)入我的主頁,底欄導(dǎo)航里還有更多技術(shù)精品合集。
本號只做持續(xù)的知識輸出,希望您能關(guān)注、評論、轉(zhuǎn)發(fā)!您的支持是我不竭的創(chuàng)作動力!讓知識產(chǎn)生價值、讓程序員改變世界!
總結(jié)
以上是生活随笔為你收集整理的idea修改代码后没有重新编译_SpringBoot中实现代码修改之后的自动更新与热加载...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炒股软件同花顺又崩了 华为云回应:已修复
- 下一篇: 【转】医学图像中的窗宽、窗位!!