Spring-boot-devtools 工具介绍

x33g5p2x  于2022-09-25 转载在 Spring  
字(2.1k)|赞(0)|评价(0)|浏览(717)

1. 简介

Spring Boot 使我们能够快速设置和运行服务。为了进一步增强开发体验,Spring 发布了 spring-boot-devtools 工具——作为 Spring Boot-1.3 的一部分。本文将尝试介绍使用新功能可以获得的好处。

1.1。在项目中添加 Spring-Boot-Devtools

在项目中添加 spring-boot-devtools 就像添加任何其他 spring-boot 模块一样简单。在现有的 spring-boot 项目中,添加以下依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

对项目进行干净的构建,您现在已与 spring-boot-devtools 集成。可以从这里获取最新版本,所有版本都可以在这里找到。

2。属性默认值

Spring-boot 做了很多自动配置,包括默认启用缓存以提高性能。一个这样的例子是模板引擎使用的模板的缓存,例如百里香。但在开发过程中,尽快看到变化更为重要。

可以使用 application.properties 文件中的属性 *spring.thymeleaf.cache=false *为 thymeleaf 禁用缓存的默认行为。我们不需要手动执行此操作,引入此 spring-boot-devtools 会自动为我们执行此操作。

3。自动重启

在典型的应用程序开发环境中,开发人员会进行一些更改、构建项目并部署/启动应用程序以使新更改生效,或者尝试利用 JRebel 等。

使用 spring-boot-devtools, 这个过程也是自动化的。每当类路径中的文件发生更改时,使用 spring-boot-devtools 的应用程序都会导致应用程序重新启动。此功能的好处是验证所做更改所需的时间大大减少:

4。实时重新加载

spring-boot-devtools 模块包含一个嵌入式 LiveReload 服务器,用于在资源更改时触发浏览器刷新。

为了在浏览器中发生这种情况,我们需要安装 LiveReload 插件,其中一种实现是用于 Chrome 的 Remote Live Reload

5。全局设置

spring-boot-devtools 提供了一种配置不与任何应用程序耦合的全局设置的方法。此文件名为 .spring-boot-devtools.properties,位于 $HOME

6。远程应用程序

6.1。通过 HTTP 进行远程调试(远程调试隧道)

spring-boot-devtools 通过 HTTP 提供开箱即用的远程调试功能,要拥有此功能,需要将 spring-boot-devtools 作为应用程序的一部分打包。这可以通过在 maven 的插件中禁用 excludeDevtools 配置来实现。

这是一个快速示例:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludeDevtools>false</excludeDevtools>
            </configuration>
        </plugin>
    </plugins>
</build>

现在要通过 HTTP 进行远程调试,必须采取以下步骤:

  1. 在服务器上部署和启动的应用程序应在启用远程调试的情况下启动:
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n

1、我们可以看到,这里没有提到远程调试端口。因此,java会选择一个随机端口

  1. 对于同一个项目,打开启动配置,选择以下选项:
    选择主类:org.springframework.boot.devtools.RemoteSpringApplication
    在程序参数中,添加应用程序的 URL,例如http://localhost:8080
  2. 通过 spring-boot 应用程序调试器的默认端口是 8000,可以通过以下方式覆盖:
spring.devtools.remote.debug.local-port=8010
  1. 现在创建一个远程调试配置,将端口设置为通过属性配置的 80108000,如果坚持默认设置

6.2。远程更新

远程客户端监视应用程序类路径的更改,就像远程重启功能所做的那样。类路径中的任何更改都会导致将更新的资源推送到远程应用程序并触发重新启动。

当远程客户端启动并运行时会推送更改,因为只有在那时才能监视更改的文件。

7。总结

通过这篇快速文章,我们刚刚展示了如何利用 spring-boot-devtools 模块通过自动化大量活动来改善开发人员体验并缩短开发时间。

相关文章