devtools是boot的一個熱部署工具,當咱們修改了類文件、屬性文件、頁面、配置文件等時,會從新啓動程序。 java
其原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方jar),另外一個ClassLoader加載會更改的類,成爲restart ClassLoader。web
這樣在有代碼更改時候,原來的restart ClassLoader被丟棄,從新建立一個restart ClassLoader,因爲須要加載的類比較少,因此實現了較快的重啓時間(通常5秒內)。spring
配置pom.xml添加依賴包瀏覽器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin </artifactId> <configuration> <!-- 若是沒有該項配置,devtools不會起做用 --> <fork>true</fork> </configuration> </plugin> </plugins> </build>
爲了方便測試,能夠在SpringBoot項目中寫個controller類springboot
package com.springboot.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @RequestMapping("/hello") public String hello(){ return "hello world"; } }
一、啓動springbootapp
二、經過瀏覽器輸入controller地址,得到返回的字符串eclipse
顯示效果:maven
三、不關閉程序的狀況下,修改返回的字符串值,而後刷新瀏覽器spring-boot
@RequestMapping("/hello") public String hello(){ return "hello friend"; }
顯示效果:工具
在沒有關閉程序的狀況下發現字符串已經改變,測試成功