一:简介
Spring Boot包括一组额外的工具,可以使应用程序开发体验更加愉快。 spring-boot-devtools模块可以包含在任何项目中,它可以节省大量的时间。 想要使用devtools支持,只需将模块依赖关系添加到你的构建中
- pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
将依赖标记为optional可选是一种最佳做法,可以防止将devtools依赖传递到其他模块中
二:功能
1. 属性默认值
Spring Boot 支持的一些库中会使用缓存来提高性能。例如模版引擎将缓存编译后的模板,以避免重复解析模板文件。 此外,Spring MVC可以在服务静态资源时向响应中添加HTTP缓存头。
虽然缓存在生产中非常有益,但它在开发过程中可能会产生反效果,它会阻止你看到刚刚在应用程序中进行的更改。 因此,spring-boot-devtools将默认禁用这些缓存选项。
缓存选项通常在application.properties文件中配置。 例如,Thymeleaf提供了spring.thymeleaf.cache属性。spring-boot-devtools模块不需要手动设置这些属性,而是自动应用合理的开发时配置。
2. 自动重启
spring-boot-devtools会在类路径上的文件发生更改时自动重启。 这在IDE中工作时可能是一个有用的功能,因为它为代码更改提供了非常快的反馈循环。 默认情况下会监视类路径上的所有变动,但请注意,某些资源(如静态资源和视图模板)不需要重启应用程序。
触发重启:当DevTools监视类路径资源时,触发重启的唯一方法是更新类路径, 在IntelliJ IDEA中,构建项目( Build -> Build Project)或者Command + F9 将具有相同的效果。
@Controller
public class SampleController {
@RequestMapping("/index")
public String index(Model model){
model.addAttribute("username", "[mengday]");
return "index";
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
user: [[${username}]]
</body>
</html>
当模板内容或者类发生更改时需要构建Build一下(Command + F9)
3. 实时加载
LiveReload 插件安装, 安装后,点击浏览器上的右上角,开启,Enable,让更改模板文件,需要构建一下(Command + Shift + F9),然后就可以看到浏览器中的页面内容会自动加载最新的,如果不装此插件只能手动的刷新浏览器来加载。