Spring Boot 開發(fā)環(huán)境熱部署詳細(xì)教程
在實(shí)際的項(xiàng)目開發(fā)過中,當(dāng)我們修改了某個(gè)java類文件時(shí),需要手動(dòng)重新編譯、然后重新啟動(dòng)程序的,整個(gè)過程比較麻煩,特別是項(xiàng)目啟動(dòng)慢的時(shí)候,更是影響開發(fā)效率。其實(shí)Spring Boot的項(xiàng)目碰到這種情況,同樣也同樣需要經(jīng)歷重新編譯、重新啟動(dòng)程序的過程。 只不過 Spring Boot 提供了一個(gè)spring-boot-devtools的模塊,使得 Spring Boot應(yīng)用支持熱部署,無需手動(dòng)重啟Spring Boot應(yīng)用,,提高開發(fā)者的開發(fā)效率。接下來,聊一聊Spring Boot 開發(fā)環(huán)境熱部署。
一、原理
devtools使用了兩個(gè)類加載器(ClassLoader),一個(gè)是 Base類加載器(base classloader):加載那些不會(huì)改變的類,如:第三方Jar包等,而另一個(gè)是 Restart類加載器(restart classloader):負(fù)責(zé)加載那些正在開發(fā)的會(huì)改變的類。這樣在有代碼更改的時(shí)候,因?yàn)橹貑⒌臅r(shí)候只是加載了在開發(fā)的Class類,沒有重新加載第三方的jar包,所以實(shí)現(xiàn)了較快的重啟時(shí)間。
devtools 監(jiān)聽classpath下的文件變動(dòng)(發(fā)生在保存時(shí)機(jī)),并且會(huì)立即重啟應(yīng)用。從而實(shí)現(xiàn)類文件和屬性文件的熱部署。
二、快速配置
1、pom配置
引入devtools的依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true, 依賴不會(huì)傳遞, 該項(xiàng)目依賴devtools;之后依賴boot項(xiàng)目的項(xiàng)目如果想要使用devtools, 需要重新引入 --> <optional>true</optional></dependency>
注意:optional=true, 依賴不會(huì)傳遞, 該項(xiàng)目依賴devtools;之后依賴boot項(xiàng)目的項(xiàng)目如果想要使用devtools, 需要重新引入。
2、application.properties配置
在application.properties中配置devtools。
# 關(guān)閉緩存即時(shí)刷新#spring.thymeleaf.cache=false#熱部署生效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/**
說明:
devtools可以實(shí)現(xiàn)頁面熱部署,即頁面修改后會(huì)立即生效,需要將application.properties文件中配置spring.thymeleaf.cache=false。
devtools會(huì)監(jiān)聽classpath下的文件變動(dòng),并且會(huì)立即重啟應(yīng)用。
3、IDEA配置
如果idea是新安裝的或者之前就沒有配置過,發(fā)現(xiàn)改變代碼項(xiàng)目熱部署不成功。當(dāng)我們修改了Java類后,IDEA默認(rèn)是不自動(dòng)編譯的,而spring-boot-devtools又是監(jiān)測classpath下的文件發(fā)生變化才會(huì)重啟應(yīng)用。
所以需要設(shè)置IDEA的自動(dòng)編譯:
(1)File-Settings-Compiler-Build Project automatically
(2)ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running
這樣,就可以使用devtools實(shí)現(xiàn)熱部署了。
最后
以上,就把如何配置Spring Boot 開發(fā)環(huán)境熱部署介紹完了。還是比較簡單的,大家自己去研究吧。
到此這篇關(guān)于Spring Boot 開發(fā)環(huán)境熱部署詳細(xì)教程的文章就介紹到這了,更多相關(guān)Spring Boot 開發(fā)環(huán)境熱部署內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Ajax實(shí)現(xiàn)表格中信息不刷新頁面進(jìn)行更新數(shù)據(jù)2. ajax post下載flask文件流以及中文文件名問題3. CSS自定義滾動(dòng)條樣式案例詳解4. 詳解CSS偽元素的妙用單標(biāo)簽之美5. SpringBoot+Shiro+LayUI權(quán)限管理系統(tǒng)項(xiàng)目源碼6. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法7. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法8. HTML <!DOCTYPE> 標(biāo)簽9. 關(guān)于Mysql-connector-java驅(qū)動(dòng)版本問題總結(jié)10. JavaScrip簡單數(shù)據(jù)類型隱式轉(zhuǎn)換的實(shí)現(xiàn)
