领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多欢迎回来,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 中工作时,所有这些都会自动为您完成。
如果您在远程运行时(例如 Cloud Foundry)上运行 Spring Boot 应用程序,这个故事就更有意思了。原则上,您也可以在这样的远程环境中使用 Spring Boot Devtools,但这需要更多工作。好消息是 Spring Boot Dashboard 可以帮助您做到这一点。
一旦您部署或重新启动(因此更新)在 Cloud Foundry 上运行的 Spring Boot 应用程序(使用 Boot Dashboard),并且该应用程序的类路径上包含 Spring Boot Devtools,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 Boot Dashboard,这是自 3.7.1 版本以来 Spring Tool Suite 中的一项新功能。请告诉我们您使用 Dashboard 的体验。