乐趣区

Springboot快速上手-第六篇-开发者工具

1 概述

SpringBoot 提供了强大易用的 Devtools 来辅助开发,包括如下功能。

  • 1:自动重启:当 Classpath 里的文件发生变化时,自动重启运行中的应用程序
  • 2:LiveReload 支持:对资源的修改自动触发浏览器刷新
  • 3:远程开发:远程部署时支持自动重启和 LiveReload
  • 4:默认的开发时属性:为一些属性提供有意义的默认开发时属性值

2 环境构建

在 pom 里面加入:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    <scope>provided</scope>
</dependency>

3 自动重启

在激活了开发者工具后,Classpath 里对文件做任何修改都会触发应用程序重启。为了让重启速度够快,不会修改的类 (比如第三方 JAR 文件里的类) 都加载到了基础类加载器里,而应用程序的代码则会加载到一个单独的重启类加载器里。检测到变更时,只有类加载器重启。

  • 1:有些 Classpath 里的资源变更后不需要重启应用程序。像 Thymeleaf 这样的视图模板可以直接编辑,不用重启应用程序;在 /static 或 /public 里的静态资源也不用重启应用程序,所以 Spring Boot 开发者工具会在重启时排除掉如下目录:/META-INF/resources、/resources、/static、/public 和 /templates
  • 2:可以设置 spring.devtools.restart.exclude 属性来覆盖默认的重启排除目录,例如:

spring.devtools.restart.exclude=/static/,/templates/

  • 3:如果想彻底关闭自动重启,可以将 spring.devtools.restart.enabled 设置为 false
  • 4:还可以设置一个触发文件,必须修改这个文件才能触发重启。例如,在修改名为 my.trigger 的文件前你都不希望执行重启,那么你只需像这样设置:spring.devtools.restart.trigger-file=my.trigger

4 LiveReload

LiveReload 支持不点刷新就直接看到修改结果,激活开发者工具后,Spring Boot 会启动一个内嵌的 LiveReload 服务器,在资源文件变化时会触发 浏览器刷新。你要做的就是在浏览器里安装 LiveReload 插件。
如 果 想 要 禁 用 内 嵌 的 LiveReload 服 务 器,可 以如下设置:spring.devtools.livereload. Enabled=false

退出移动版