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

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

欢迎回来 Spring 社区,

欢迎阅读关于 Spring Tool Suite 中新的 Spring Boot 仪表板系列的最后一部分。在最后一部分中,我们将更深入地了解如何结合使用 Spring Boot Devtools 与启动仪表板。同样,此功能是 Spring Boot 1.3 中的新功能,因此您需要使用该版本才能使用以下功能。

快速部署代码更改

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

如果您在像 Cloud Foundry 这样的远程运行时上运行 Spring Boot 应用程序,那么这个故事会变得更有趣。原则上,您也可以在这样的远程设置中使用 Spring Boot Devtools,但这需要更多的工作。好消息是 Spring Boot 仪表板可以帮助您。

只要您在 Cloud Foundry 上部署或重新启动(因此更新)具有 Spring Boot Devtools 在其类路径上的 Spring Boot 应用程序(使用启动仪表板),启动仪表板就会自动为 devtools 的远程使用配置 CF 上的启动应用程序。这主要包括设置远程密钥 - 以允许远程 devtools 访问它。

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

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

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

在云中调试

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

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

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

结论

这结束了关于 Spring Boot 仪表板的博客系列,这是 Spring Tool Suite 自其 3.7.1 版本以来的一个新功能。请告诉我们您使用仪表板的体验。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看所有