springboot-devtools idea或eclipse 热加载
大家好,我是烤鴨:
? ? 今天分享一下springboot項(xiàng)目的熱加載。
? ? 第二種方式在eclipse和idea中都可以。雖然會(huì)有一些小坑。
方式有兩種:
1.? ?springloaded(無(wú)效)
<!-- https://mvnrepository.com/artifact/org.springframework/springloaded --> <dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId><version>1.2.8.RELEASE</version><scope>provided</scope> </dependency>2.? ?springboot-devtools(推薦)
? ? 首先看一下官網(wǎng),簡(jiǎn)單通俗。
????https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html
? ? 2.1????pom文件
<!-- 熱加載 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><version>2.0.0.RELEASE</version><optional>true</optional><scope>true</scope></dependency><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- fork: 如果沒(méi)有配置該項(xiàng)配置,devtools不會(huì)起作用的,即應(yīng)用不會(huì)restear --><fork>ture</fork></configuration></plugin></plugins>????2.2????異常情況說(shuō)明
? ? ????2.2.1????類型轉(zhuǎn)換異常:
????????https://blog.csdn.net/m0_38043362/article/details/78064539
????? ? 官網(wǎng)的解決方式:
????????
????? ? 按這個(gè)思路,首先在src/main/resources 目錄下建立META-INF文件夾,創(chuàng)建spring-devtools.properties
????? ? 內(nèi)容:
最開(kāi)始給我報(bào)的是類型轉(zhuǎn)換異常,因?yàn)橛玫氖莝hiro,所以我在properties中加入了shiro的包:
restart.include.shiro=/shiro-[\\w-\\.]+jar后來(lái)又報(bào)thymeleaf的異常,導(dǎo)致項(xiàng)目無(wú)法啟動(dòng),加入了thymeleaf的包
restart.include.thymeleaf=/thymeleaf-[\\w-\\.]+jar再后來(lái)...
總之是哪個(gè)包報(bào)錯(cuò)了,就把響應(yīng)的pom文件中引的這個(gè)包,在這個(gè)properties中配置一下。
最后:
spring-devtools.properties :
? ? 2.2.2? ? 小結(jié)
? ? 官網(wǎng)的意思是任何jar包都可以被"基本的"類加載器加載。如果你的項(xiàng)目是多模塊的,不是每個(gè)模塊都可以導(dǎo)入到你的IDE中。
? ? 所以需要自定義。重點(diǎn)是這兩句。
????The?include?elements are items that should be pulled up into the “restart” classloader, and the?exclude?elements are items that should be pushed down into the “base” classloader.
? ? ????include的包含的jar包被放入了“重啟”的類加載器,而exclude的包含的jar包被推入了“基本”類加載器。
All property keys must be unique.? ? 定義的Key值必須唯一。
? ?????? ?我個(gè)人的理解就是需要被他的類加載器加載的就不定義,如果有自己的類需要自己的類加載器,比如shiro等等,就需要定義在這個(gè)properties。devtools負(fù)責(zé)的是對(duì)基本類加載器中的類的加載。
3.? ? IDE中使用
? ? 3.1? ? eclipse
????
????? ? 打開(kāi)自動(dòng)編譯以后,每次編譯時(shí)間長(zhǎng)短不一樣。多修改保存幾次就好了。如果還不行,就取消自動(dòng)編譯再打鉤。
? ? 3.2? ? idea
File——>settings——>Compiler——>Build project automatically
? ??? ?
快捷鍵:CTRl+ALT+SHIFT+/? ? ——>? Registry
如果這些還是無(wú)效的話,可以試試手動(dòng)編譯。右鍵如下圖。快捷鍵Ctrl+Shift+F9
4.? ? 特別說(shuō)明
? ? ?之前出現(xiàn)過(guò):
? ? ?1.????eclipse需要多次保存class文件才能生效。
? ? ?2.????在idea上出現(xiàn)必須手動(dòng)編譯才能生效。
? ? ?3.? ? 靜態(tài)資源(js.css)或者模板文件(ftl,thymeleaf)沒(méi)有reload。
? ? ?原因猜想:
????? ? 之前安裝過(guò)JRebel(熱加載插件,需要收費(fèi)),雖然卸載了,不知道有沒(méi)有影響。
????? ? 電腦的原因,換一臺(tái)性能好點(diǎn)的電腦,上述問(wèn)題就沒(méi)有了。
????? ? 有類似問(wèn)題的,歡迎交流。
?????
總結(jié)
以上是生活随笔為你收集整理的springboot-devtools idea或eclipse 热加载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PowerDesigner从数据库导入
- 下一篇: Library not loaded: