javascript
idea修改代码后没有重新编译_SpringBoot中实现代码修改之后的自动更新与热加载...
在實際的開發過程中,我們經常修改代碼之后,手動的重啟項目,查看修改效果。那么有沒有一種方式能夠快速的、自動的幫我們將修改代碼自動更新,避免手動重啟,從而提高開發效率呢?是有的,對于這個功能很多人對功能的叫法有爭議,也沒有權威的定義,筆者知道的就有:熱啟動、熱加載、熱更新、熱部署。筆者覺得“熱加載”可能更準確一些。但是叫什么并不重要,實現了最重要!
1.1.引入devtools的maven依賴
org.springframework.boot spring-boot-devtools truespring-boot-devtools從名稱就可以看出來,是開發者工具包,其主要的功能就是實現熱加載。其實現原理就是兩個ClassLoader,一個負責加載那些不會經常改變的文件,比如:第三方jar包;一個負責加載可能經常改變的類,比如我們自己在項目中寫的代碼,被稱為restart ClassLoader。當有代碼發生改變的時候,重建一個restart ClassLoader,原有的restart ClassLoader被丟掉。由于每次重新加載的內容較少,所以速度比手動重啟更快一些。
org.springframework.boot spring-boot-maven-plugin true在 plugin 中配置另外一個屬性 fork,并且配置為 true。
1.2.設置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 進行一下application.properties配置
在有些版本我們需要配置熱加載生效的開關,使其值等于true。下文是properties格式配置,喜歡yml格式的同學可以自行調整一下。
#熱加載生效spring.devtools.restart.enabled=true#額外新增的熱加載目錄spring.devtools.restart.additional-paths= src/main/java#熱加載排除目錄#spring.devtools.restart.exclude=默認情況下,支持熱加載的目錄如下,如果需要其它目錄下文件支持熱加載需要手動配置:
改一下代碼,看看會不會生效。通常不生效的原因有兩種:
- JDK編譯版本和運行版本不同意,自行學習一下IDEA環境下JDK配置
- 瀏覽器緩存或者其他的緩存軟件導致的問題
寫在最后
點擊我的頭像進入我的主頁,底欄導航里還有更多技術精品合集。
本號只做持續的知識輸出,希望您能關注、評論、轉發!您的支持是我不竭的創作動力!讓知識產生價值、讓程序員改變世界!
總結
以上是生活随笔為你收集整理的idea修改代码后没有重新编译_SpringBoot中实现代码修改之后的自动更新与热加载...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炒股软件同花顺又崩了 华为云回应:已修复
- 下一篇: 第九节:JWT简介和以JS+WebApi