📅  最后修改于: 2021-01-11 05:09:13             🧑  作者: Mango
Spring Boot 1.3提供了另一个名为Spring Boot DevTools的模块。 DevTools代表开发人员工具。该模块的目的是在使用Spring Boot应用程序时尝试并缩短开发时间。 Spring Boot DevTools接受更改并重新启动应用程序。
通过在pom.xml文件中添加以下依赖项,我们可以在项目中实现DevTools。
org.springframework.boot
spring-boot-devtools
runtime
Spring Boot DevTools提供以下功能:
属性默认值: Spring Boot提供了模板技术Thymeleaf ,其中包含属性spring.thymeleaf.cache。它禁用了缓存,并允许我们更新页面而无需重新启动应用程序。但是在开发过程中设置这些属性总是会带来一些问题。
当使用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来禁用服务器的自动重启。
LiveReload: Spring Boot DevTools模块包括一个称为LiveReload的嵌入式服务器。每当我们对资源进行更改时,它都允许应用程序自动触发浏览器刷新。也称为自动刷新。
注意:我们可以通过将spring.devtools.livereload.enabled属性设置为false来禁用LiveReload。
它提供了适用于Chrome,Firefox和Safari的浏览器扩展。默认情况下,启用LiveReload。 LiveReload在以下路径上工作:
我们还可以通过排除上述路径来禁用浏览器中的自动重新加载。例如:
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/**
远程调试隧道: Spring Boot可以通过HTTP将JDWP(Java调试线协议)直接隧道到应用程序。它甚至可以将应用程序部署到仅公开端口80和443的Internet云提供商。
远程更新和重新启动: DevTools提供的另一个技巧是:它支持远程应用程序更新和重新启动。它监视本地类路径中的文件更改,并将它们推送到远程服务器,然后重新启动。我们还可以将此功能与LiveReload结合使用。
由于频繁的重启,自动重启有时会减慢开发时间。要解决此问题,我们可以使用触发文件。 Spring Boot监视触发文件并检测该文件中的修改。它重新启动服务器并重新加载所有先前的更改。
我们可以通过添加属性spring.devtools.restart.trigger-file在我们的应用程序中实现触发文件。该文件可以是内部文件,也可以是外部文件。例如:
spring.devtools.restart.trigger-file=c:/workspace-sts-3.9.9.RELEASE/restart-trigger.txt
步骤1:使用Spring Initializr https://start.spring.io/创建一个Maven项目。
步骤2:提供群组名称和工件ID。我们提供了组名com.javatpoint和工件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应用程序运行。
之后,在应用程序中进行任何更改(编辑或删除一些文件或代码),然后保存更改。保存更改后,服务器将重新启动并接收更改。