Spring Boot 使我们能够快速设置和运行服务。为了进一步增强开发体验,Spring 发布了 spring-boot-devtools 工具——作为 Spring Boot-1.3 的一部分。本文将尝试介绍使用新功能可以获得的好处。
在项目中添加 spring-boot-devtools
就像添加任何其他 spring-boot 模块一样简单。在现有的 spring-boot 项目中,添加以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
对项目进行干净的构建,您现在已与 spring-boot-devtools 集成。可以从这里获取最新版本,所有版本都可以在这里找到。
Spring-boot 做了很多自动配置,包括默认启用缓存以提高性能。一个这样的例子是模板引擎使用的模板的缓存,例如百里香。但在开发过程中,尽快看到变化更为重要。
可以使用 application.properties 文件中的属性 *spring.thymeleaf.cache=false
*为 thymeleaf 禁用缓存的默认行为。我们不需要手动执行此操作,引入此 spring-boot-devtools 会自动为我们执行此操作。
在典型的应用程序开发环境中,开发人员会进行一些更改、构建项目并部署/启动应用程序以使新更改生效,或者尝试利用 JRebel 等。
使用 spring-boot-devtools
, 这个过程也是自动化的。每当类路径中的文件发生更改时,使用 spring-boot-devtools
的应用程序都会导致应用程序重新启动。此功能的好处是验证所做更改所需的时间大大减少:
spring-boot-devtools
模块包含一个嵌入式 LiveReload 服务器,用于在资源更改时触发浏览器刷新。
为了在浏览器中发生这种情况,我们需要安装 LiveReload 插件,其中一种实现是用于 Chrome 的 Remote Live Reload。
spring-boot-devtools
提供了一种配置不与任何应用程序耦合的全局设置的方法。此文件名为 .spring-boot-devtools.properties,位于 $HOME
。
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 进行远程调试,必须采取以下步骤:
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n
1、我们可以看到,这里没有提到远程调试端口。因此,java会选择一个随机端口
spring.devtools.remote.debug.local-port=8010
远程客户端监视应用程序类路径的更改,就像远程重启功能所做的那样。类路径中的任何更改都会导致将更新的资源推送到远程应用程序并触发重新启动。
当远程客户端启动并运行时会推送更改,因为只有在那时才能监视更改的文件。
通过这篇快速文章,我们刚刚展示了如何利用 spring-boot-devtools 模块通过自动化大量活动来改善开发人员体验并缩短开发时间。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.dailycodebuffer.com/introduction-to-spring-boot-dev-tools/
内容来源于网络,如有侵权,请联系作者删除!