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"; }
显示效果:工具
在没有关闭程序的状况下发现字符串已经改变,测试成功