本文概述
- Spring Boot DevTools
- Spring Boot DevTools功能
- 使用触发文件
通过在pom.xml文件中添加以下依赖项, 我们可以在项目中实现DevTools。
<
dependency>
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-devtools<
/artifactId>
<
scope>
runtime<
scope >
<
/dependency>
Spring Boot DevTools功能 Spring Boot DevTools提供以下功能:
- 属性默认值
- 自动重启
- LiveReload
- 远程调试隧道
- 远程更新和重启
使用spring-boot-devtools模块时, 不需要设置属性。在Thymeleaf, Freemarker, Groovy模板的开发缓存期间, 将自动禁用。
注意:如果我们不想在应用程序上应用属性默认值, 可以在application.properties文件中将configprop:spring.devtools.add-properties []设置为false。 自动重启:自动重启意味着重新加载Java类并在服务器端对其进行配置。服务器端更改后, 它会动态部署, 服务器会重新启动, 并加载修改后的代码。它主要用于基于微服务的应用程序。 Spring Boot使用两种类型的ClassLoader:
- 不变的类(三分之三)将加载到基本ClassLoader中。
- 我们正在积极开发的类将在重新启动ClassLoader中加载。
我们可以通过将spring.devtools.restart.enabled属性设置为false来禁用服务器的自动重启。
记得:
- DevTools始终监视类路径资源。
- 触发重启的唯一方法是更新类路径。
- DevTools需要单独的应用程序类加载器才能正常工作。默认情况下, Maven派生应用程序进程。
- 自动重启可与LiveReload一起很好地工作。
- DevTools依赖于应用程序上下文的关闭挂钩在重新启动期间将其关闭。
注意:我们可以通过将spring.devtools.livereload.enabled属性设置为false来禁用LiveReload。
它提供了适用于Chrome, Firefox和Safari的浏览器扩展。默认情况下, 启用LiveReload。 LiveReload在以下路径上工作:
- / META-INF /行家
- / META-INF /资源
- /资源
- /静态的
- /上市
- /模板
spring.devtools.restart.exclude=public/**, static/**, templates/**
我们可以通过使用spring.devtools.restart.additional-paths属性来查看其他附加路径。例如:
spring.devtools.restart.additional-paths=/path-to-folder
如果我们要排除其他路径并希望保留默认路径, 请使用属性spring.devtools.restart.additional-exclude。例如:
spring.devtools.restart.additional-exclude=styles/**
记得
- 我们可以一次运行一台LiveReload服务器。
- 在启动应用程序之前, 请确保没有其他LiveReload服务器正在运行。
- 如果我们从IDE启动多个应用程序, 则它仅支持第一个LiveReload。
远程更新和重新启动:DevTools提供的另一个技巧是:它支持远程应用程序更新和重新启动。它监视本地类路径中的文件更改, 并将它们推送到远程服务器, 然后重新启动。我们也可以将此功能与LiveReload结合使用。
使用触发文件 由于频繁的重启, 自动重启有时会减慢开发时间。要解决此问题, 我们可以使用触发文件。 Spring Boot监视触发文件并检测该文件中的修改。它重新启动服务器并重新加载所有先前的更改。
我们可以通过添加属性spring.devtools.restart.trigger-file在我们的应用程序中实现触发文件。该文件可以是内部文件, 也可以是外部文件。例如:
spring.devtools.restart.trigger-file=c:/workspace-sts-3.9.9.RELEASE/restart-trigger.txt
Spring Boot DevTools示例
步骤1:使用Spring Initializr https://start.spring.io/创建一个Maven项目。
步骤2:提供群组名称和工件ID。我们提供了组名com.srcmini和工件ID spring-boot-devtools-example。
步骤3:添加以下依赖项:spring-boot-starter-web和spring-boot-devtools。
步骤4:点击Generate(生成)按钮。下载项目的Jar文件。
步骤5:提取Jar文件。
步骤6:将文件夹导入STS。导入需要时间。
文件-> 导入-> 现有Maven项目-> 浏览-> 选择文件夹spring-boot-devtools-example-> 完成
当项目成功导入后, 我们可以在STS的Package Explorer部分中看到以下目录。
文章图片
步骤7:打开SpringBootDevtoolsExampleApplication.java并将其作为Java应用程序运行。
之后, 在应用程序中进行任何更改(编辑或删除一些文件或代码), 然后保存更改。保存更改后, 服务器将重新启动并接收更改。
文章图片
【Spring Boot DevTools用法示例图解】下载专案
推荐阅读
- Spring Boot依赖管理详细介绍
- 入门必看(Spring Boot架构图文解读)
- 创建一个Spring Boot项目图文详解
- Spring Boot AOP Before Advice用法详解
- Spring Boot AOP After Advice用法详解
- Spring Boot AOP Around Advice用法示例
- 使用STS创建Spring Boot项目(图文详解)
- Spring Boot Starter执行器介绍和用法
- Spring Boot AOP介绍和用法全解