欢迎 Spring 社区的朋友们,
引言
Spring Boot 现已成为一项被广泛采用的技术,可以简化您在企业中实现 Spring 应用程序的工作。它特别适合创建基于微服务的应用程序,极大地改变了我们对小型、易于配置的 Spring 应用程序的看法。与 Spring Cloud 结合使用,它为真正的云原生应用程序打开了大门,这些应用程序可能由许多微服务组成。
这种架构思维上的巨大转变也需要在我们的 IDE 中有所体现。我们大多数传统的 Java IDE 不仅是在云原生时代之前发明的,而且在一定程度上是在编程的分布式时代之前。Spring Tool Suite 及其基础 Eclipse IDE 也是如此。现在是时候将这些 IDE 推向云原生时代了。这就是 Spring Boot Dashboard 的出发点。它的重点是帮助您处理数量可能更多的基于 Spring Boot 的微服务应用程序,并在您的 IDE 中处理这些项目时极大地简化您的开发工作。
Spring Boot Dashboard
Spring Boot Dashboard 最初是一个额外的视图,逐步集成到 STS/Eclipse 中。您可以通过单击主工具栏中的 Spring Boot 按钮来打开它。它会打开一个简单的视图,与您的工作区项目同步,显示工作区中的 Spring Boot 项目。
Boot Dashboard 的主要目的是让您快速访问日常、每小时甚至更频繁执行的操作。您可以在 Boot Dashboard 中选择您的 boot 应用程序,然后单击工具栏中的“运行”或“调试”操作,即可快速启动应用程序(以运行或调试模式)。没有比这更快启动 boot 应用程序的方法了。而且,由于您可能会更改代码并希望重新启动应用程序,如果应用程序已经在运行,该操作允许您重新启动它。修改您的代码,单击 Boot Dashboard 中的“运行”按钮,您的 boot 应用程序就会自动停止并重新启动。同样,这是一个简单的一键操作。
Boot Dashboard 中这些操作(以及更多其他操作)的强大之处在于它们可以同时作用于单个或多个项目。例如,如果您想同时启动或停止一组协同工作的 boot 应用程序,只需在 Dashboard 中全选它们,然后单击“运行”即可。就是这么简单。
一旦您在项目中采用 Spring Boot 1.3,您就会注意到 Boot Dashboard 中出现了更多额外的功能。当您的 boot 应用程序开始启动时,Boot Dashboard 会将其启动过程可视化呈现出来 - 并区分其启动阶段(虚拟机正在运行,但应用程序仍在初始化)和真正运行并准备就绪的状态。进度图标表示应用程序仍在启动中,绿色的“向上”图标则表示应用程序已完全初始化并运行。您无需一直盯着日志输出,等待诸如“服务器已启动”之类的消息出现。Boot Dashboard 的图标会告诉您应用程序的状态。
一旦应用程序运行起来,它监听的端口就会显示在 Boot Dashboard 中,方便您查看。您不必再扫描日志输出以查找应用程序正在使用的端口。Dashboard 会自动显示该信息。如果您想查看正在运行的 boot 应用程序的控制台输出,也有一个快速操作可以实现。
通常不再需要知道正在运行的应用程序的端口了,因为您不必自己为应用程序打开浏览器标签页。在 Boot Dashboard 中双击项目,它将为您打开一个新的浏览器标签页,直接导航到应用程序的默认 URL。
默认情况下,这会打开一个 Eclipse/STS 内部浏览器视图。如果您更喜欢使用外部浏览器,可以在首选项中进行设置。
如果此默认 URL 不是您希望默认访问的 URL,您可以对其进行自定义。打开属性视图,在 Boot Dashboard 中选择项目,然后输入您喜欢的默认 URL 扩展。双击将打开应用程序的默认 URL + 您自定义的扩展。
如果您不确定应用程序定义了哪些 URL 扩展,可以在属性视图中选择“请求映射 (Request Mappings)”选项卡。列表中列出了正在运行的应用程序的所有请求映射 - 您自己定义的位于顶部,来自库的位于列表底部。双击 URL 扩展将打开该扩展对应的浏览器页面,双击代码指针将在编辑器中打开您项目对应的文件,并跳转到定义该请求映射的那一行。
您的工作区中的微服务项目越多,您就越有可能不会同时处理所有项目。您可能希望只关注其中的一部分。例如,在 Eclipse/STS 中,您可能创建了一个工作集。Boot Dashboard 允许您为项目添加任意数量的标签(同样,在属性视图中)。然后,这些标签可以在过滤器框(位于 Boot Dashboard 的顶部)中使用,以减少 Boot Dashboard 中显示的项目数量。
展望
本系列的第二部分将介绍 Boot Dashboard 与 Cloud Foundry 的集成,如何从 Boot Dashboard 内部将微服务部署到 CF,以及如何将本地 boot 应用程序与部署在 CF 上的应用程序结合使用。