Spring Boot Devtools 教程

原文地址:https://howtodoinjava.com/spring-boot2/developer-tools-module-tutorial/

如果您已经处理过最新的UI开发框架,例如节点,角度,gulp等然后你必须已经意识到只要某些代码发生变化,就可以在浏览器中自动重新加载UI。它非常实用,可以节省大量时间。

好吧,使用spring-boot-devtools依赖提供的功能,可以在spring启动应用程序中使用相同的功能。让我们了解如何启用这些功能并使用它们。

Enabling Dev Tools Module

在Spring引导应用程序中启用开发工具非常容易。只需在构建文件中添加spring-boot-devtools依赖项即可。

maven
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

gradle

dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
}

Static Resource Caching

为了提高性能,开发工具缓存静态内容/模板文件,以便更快地为浏览器/客户端提供服务。这是生产中非常好的特性,每毫秒的性能改进都很重要。但是在开发环境中,它可能是一个问题并导致过时的缓存问题,您可能无法立即在浏览器中看到您的更改。开发工具模块通过设置少量属性来提供此功能。

默认情况下,此功能已禁用。您可以通过设置属性使其在生产环境中使用。

有许多此类UI模板库支持此功能。e.g. thymeleaf, freemarker, groovy, mustache etc.

application.properties

#spring.freemarker.cache = true //set true in production environment
spring.freemarker.cache = false //set false in development environment; It is false by default.
 
//Other such properties
 
spring.thymeleaf.cache = false
spring.mustache.cache = false
spring.groovy.template.cache = false

Auto-refresh vs Auto-restart
自动刷新(auto-refresh)(或自动加载)是指在浏览器上重新加载UI以查看静态内容更改。自动重启(auto-restart)是指重新加载服务器端代码和配置,然后重新启动服务器。

Automatic UI refresh

spring-boot-devtools模块包含一个嵌入式LiveReload服务器,可用于在更改资源时触发浏览器刷新。前提条件是您的浏览器应该支持它的扩展。您可以在此链接中找到此类浏​​览器扩展名。

默认情况下,启用实时重新加载。如果由于某种原因希望禁用此功能,请将spring.devtools.livereload.enabled属性设置为false。

spring.devtools.livereload.enabled  = false #Set false to disable live reload
Excluding Resources from auto-reload

默认情况下,自动重新加载适用于以下路径:

  1. /META-INF/maven
  2. /META-INF/resources
  3. /resources
  4. /static
  5. /public
  6. /templates

如果要在浏览器中为少数这些路径中的文件禁用自动重新加载,请使用spring.devtools.restart.exclude属性。例如:

spring.devtools.restart.exclude=static/**,public/**

Watching/Excluding Additional Paths

类路径中可能没有文件很少,但您仍然可能希望查看这些附加文件/路径以重新加载应用程序。为此,请使用spring.devtools.restart.additional-paths属性。

spring.devtools.restart.additional-paths=script/**

类似地,如果要保留这些默认值并添加其他排除项,请改用spring.devtools.restart.additional-exclude属性。

spring.devtools.restart.additional-exclude=styles/**

Automatic server restart

自动重启意味着在服务器端重新加载java类和配置。在动态重新部署服务器端更改之后,服务器重新启动并加载修改后的代码和配置。

Enable/disable logging of auto-configuration changes

默认情况下,每次应用程序重新启动时,都会记录一个显示条件评估增量的报告。该报告显示了在进行更改(例如添加或删除Bean以及设置配置属性)时应用程序自动配置的更改。

要禁用报告的日志记录,请设置以下属性:

spring.devtools.restart.log-condition-evaluation-delta = false
Disabling Restart

要在非静态代码更改时禁用服务器重新启动,请使用属性spring.devtools.restart.enabled。

spring.devtools.restart.enabled = false

Using a Trigger File

每次更改文件时都可能需要自动重启,有时可能会因频繁重启而缩短开发时间。要解决此问题,您可以使用触发器文件。 Spring引导将继续监视该文件,一旦它检测到该文件中的任何修改,它将重新启动服务器并重新加载以前的所有更改。

使用spring.devtools.restart.trigger-file属性提及应用程序的触发器文件。它可以是任何外部或内部文件。

spring.devtools.restart.trigger-file = c:/workspace/restart-trigger.txt

Global settings file

为您的所有春季启动项目或模块设置所有您喜欢的配置选项可能会成为重复的工作。您可以使用全局设置文件将其最小化。然后,单个项目/模块将从全局文件继承所有自定义设置,如果需要,它们可以覆盖每个项目的任何特定设置。

要创建全局文件,请转到系统的用户主目录并创建名为.spring-boot-devtools.properties的文件。 (请注意,文件名以点开头)。不使用此全局属性文件来配置全局可用选项。

.spring-boot-devtools.properties

.spring-boot-devtools.properties
spring.devtools.restart.trigger-file = c:/workspace/restart-trigger.txt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值