作用
在開發過程中,由于每次修改完項目中的類都需要重啟服務才能看到運行的結果,對于開發調試很不友好,浪費時間,引入devtools工具可以快速啟動項目,這是它的核心功能之一。
SpringBoot devtools實現熱部署說明:
SpringBoot devtools實現熱部署說明:
1 自動重啟
spring-boot-devtools熱部署是對修改的類和配置文件進行重新加載,所以在重新加載的過程中會看到項目啟動的過程,其本質上只是對修改類和配置文件的重新加載,所以速度極快。
原理:引入devtools之后,項目會用一個base類加載器來加載不改變的類,而會用restart類加載器來加載改變的類。當項目產生修改時,base類加載器不變化,而restart類會重建。類修改時,只對修改過的類重新加載,使得項目重新啟動時速度極快。
2 緩存禁用
spring-boot-devtools 對于前端使用模板引擎的項目,能夠自動禁用緩存,在頁面修改后,只需要刷新瀏覽器器頁面即可。
原理:緩存可以提高性能,但在有模板引擎的開發中,模板引擎會緩存編譯過的模板,防止重復解析模板,這會導致修改頁面內容時,模板引擎不去重新解析模板,看不到修改過的內容,但devtools在開發環境中默認關閉模板引擎的緩存功能。devtools不會被打包進jar包或war包中,在生產環境中,模板引擎的緩存功能就可以正常使用了。
idea工具使用devtools:
idea監測到項目runninng 或者 debuging 會停用自動編譯,所以還需要手動build [Ctrl + F9] 或者 [ctrl + b]。