STS 中的 Spring Boot Dashboard - 第 3 部分:Spring Boot Devtools 重新加载

工程 | Martin Lippert | 2015年10月22日 | ...

Spring 社区的各位,欢迎回来!

这是我们关于 Spring Tool Suite 中新 Spring Boot Dashboard 系列的最后一篇。在这最后一篇中,我们将深入探讨结合使用 Spring Boot Devtools 和 Boot Dashboard。同样,此功能是 Spring Boot 1.3 的新功能,因此您需要使用该版本才能使用以下功能。

快速部署代码更改

对于本地应用程序,使用 Spring Boot Devtools 非常简单直接。一旦您将 Spring Boot Devtools 添加到项目作为依赖项(在上下文菜单的 Spring 类别中有一个简单的菜单选项),并启动您的应用程序,它就会监听配置和类文件的本地更改,并自动为您重新启动应用程序。您甚至不需要自己重新启动应用程序,Spring Boot Devtools 会自动为您完成。由于 STS/Eclipse 在您保存文件时会生成和更新类文件,因此在 STS 中工作时,所有这些都会自动为您完成。

如果您将 Spring Boot 应用程序运行在远程运行时(如 Cloud Foundry)上,那么这个故事会更有趣。原则上,您也可以在这样的远程环境中为此使用 Spring Boot Devtools,但这需要一些额外的工作。好消息是,Spring Boot Dashboard 会在这方面帮助您。

一旦您在 Cloud Foundry 上部署或重新启动(从而更新)一个具有 Spring Boot Devtools 依赖的 Spring Boot 应用程序(使用 Boot Dashboard),Boot Dashboard 就会自动为 CF 上的 Boot 应用程序配置 Devtools 的远程使用。这主要包括设置一个远程密钥,以允许远程 Devtools 访问它。

一旦启用 Devtools 的 Boot 应用程序在 Cloud Foundry 上运行,您就可以轻松地为此启动 Boot Devtools 远程客户端应用程序。这个客户端应用程序在您的本地计算机上运行,并连接到 Cloud Foundry 上的远程应用程序。它会监视文件更改,将它们上传到 Cloud Foundry 上的应用程序,并触发 Cloud Foundry 上的应用程序重新启动。

由于远程客户端应用程序会监视您本地计算机上项目中的文件更改,因此您可以像往常一样在 IDE 中继续工作。更改后的文件将由远程客户端应用程序自动更新到 Cloud Foundry 上的应用程序版本。Cloud Foundry 上的对应端会在更改后的文件保存到 Cloud Foundry 上的应用程序后重新启动 Boot 应用程序。这适用于新编译的源代码以及更改的资源文件。

这使您即使在部署到远程云运行时,也能在处理项目时实现快速周转周期。

云端调试

除了自动重新启动功能外,Spring Boot Devtools 还支持在云运行时上对远程应用程序进行全面调试。STS 中的 Spring Boot Dashboard 也支持此功能。如果您的应用程序的类路径中包含 Spring Boot Devtools,您可以为应用程序的 Cloud Foundry 实例按下(重新)调试按钮。这将使应用程序在 Cloud Foundry 上以调试模式重新启动,在您的计算机上自动启动相应的远程客户端应用程序,并将其连接到 Eclipse 调试器。

您可以像调试本地应用程序一样调试运行在云运行时上的应用程序,包括设置断点、检查变量,甚至热交换代码。但是,由于 Boot Devtools 目前的技术限制,对于运行在调试模式下的应用程序,自动重新启动功能不可用。

如果您尝试在 Cloud Foundry 上进行远程应用程序调试,您会注意到调试速度明显变慢。这是由于 JVM 的远程调试协议通过 HTTP 连接进行隧道传输造成的,而远程调试协议并非为此设计。我们正在努力通过使用不同的传输机制来改进这一点。但 Cloud Foundry 上的应用程序远程调试应该是您很少做的事情。为了更频繁的调试,您可以考虑在本地运行和调试应用程序,并通过我们在本博客系列上一部分中描述的 ngrok 隧道功能将其连接到您的其他应用程序服务。

结论

本系列博客到此结束,介绍了 Spring Tool Suite 自 3.7.1 版本以来的一项新功能——Spring Boot Dashboard。请告诉我们您使用该 Dashboard 的体验。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有