場景:java
在idea中作了小小改動,中止,再重啓應用比較耗時,因此須要,在作改動後自動加載修改的類或配置文件,實現自動部署,就能省不少時間。android
使用devtools實現熱部署的原理爲:spring
devtools實現熱部署使用了2個calssloader,
一個用於加載不會改變的類(如第三方jar的類);
另外一個會用來加載會變更的類的classloader被稱爲「RestartClassLoader」,
當有代碼或配置文件發生改變時,就會丟棄當前RestartClassLoader,從新建立一個RestartClassLoader加載更新的文件。
因爲須要加載的文件相對較少,因此實現了較快的重啓。app
添加maven依賴:maven
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency>
並在spring-boot-maven-plugin插件中配置fork爲trueide
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--必須配置項,不配置就不能實現熱部署--> <fork>true</fork> </configuration> </plugin>
添加spring-boot配置(非必須):spring-boot
#配置熱部署目錄 spring.devtools.restart.additional-paths=src/main/java spring.devtools.restart.enabled=true spring.devtools.restart.exclude=resources/**
Idea設置:gradle
Ctrl+Shift+a查找make project automatically並勾選
或中在default setting中選擇build,execution,deployment,而後選擇gradle-android compiler,勾選就能夠,以下圖:ui
Ctrl+Shift+Alt+/或 Ctrl+Shift+a選擇Registry…,勾選compiler.automake.allow.when.app.runningidea
肯定便可,重啓idea便可生效
修改代碼後,Ctrl+s或Ctrl+F9便可熱部署
Ctrl + Shift+F9強制從新部署