Spring XD 1.3 演示:Flo for Batch
Flo for Batch 管道构建于 Spring XD 中新支持的 Batch DSL 之上,可用于创建涉及顺序、并行或两者组合作业的复合批处理工作流。
Flo for Batch 管道构建于 Spring XD 中新支持的 Batch DSL 之上,可用于创建涉及顺序、并行或两者组合作业的复合批处理工作流。
欢迎来到另一期本周 Spring!本周我和 Pivotal 团队的其他成员一起参加了在旧金山举行的 JavaOne 2015。本周 Pivotal Spring 团队全力出击,欢迎过来打个招呼!
网上还有一些很棒的新的 SpringOne2GX 2015 录制内容,以及本周的一些很棒的社区内容,所以让我们开始吧!
要查看此代码的更新,请访问我们的React.js 和 Spring Data REST 教程。 |
在上一节中,您使应用程序能够通过 Spring Data REST 的内置事件处理程序和 Spring 框架的 WebSocket 支持动态响应来自其他用户的更新。但是,没有任何应用程序能够在没有确保整个应用程序的安全性的情况下完成,以便只有合适的用户才能访问 UI 和其背后的资源。
随时可以从此存储库中获取代码并继续学习。本节基于上一节的应用程序,并添加了一些额外内容。
在开始之前,您需要向项目的 pom.xml 文件中添加几个依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
</dependency>
这引入了 Spring Boot 的 Spring Security 启动程序,以及一些额外的 Thymeleaf 标签,以便在网页中进行安全查找。
在上一节中,您已经使用了一个不错的工资单系统。在后端声明内容并让 Spring Data REST 完成繁重的工作非常方便。下一步是建模一个需要实施安全控制的系统。
如果这是一个工资单系统,那么只有管理人员才能访问它。因此,首先对Manager
对象进行建模
@Data @ToString(exclude = "password") @Entity public class Manager {
public static final PasswordEncoder PASSWORD_ENCODER = new BCryptPasswordEncoder(); private @Id @GeneratedValue Long id; private String name; private @JsonIgnore String password; private String[] roles; public void setPassword(String password) { this.password = PASSWORD_ENCODER.encode(password); } protected Manager() {} public Manager(String name, String password, String... roles) { this.name = name; this.setPassword(password); this.roles = roles; }
}
PASSWORD_ENCODER
是加密新密码或获取密码输入并在比较之前对其进行加密的方法。id
、name
、password
和roles
定义了限制访问所需的参数。自定义的setPassword()
确保永远不会以明文形式存储密码。
在设计安全层时,需要牢记一件事。保护正确的数据位(如密码),并且不要让它们打印到控制台、日志或通过 JSON 序列化导出。
@ToString(exclude = "password")
确保 Lombok 生成的 toString() 方法不会打印出密码。@JsonIgnore
可以防止 Jackson 序列化此字段。Spring Data 非常擅长管理实体。为什么不创建一个存储库来处理这些管理人员呢?
@RepositoryRestResource(exported = false) public interface ManagerRepository extends Repository<Manager, Long> {
Manager save(Manager manager); Manager findByName(String name);
}
您不需要使用太多方法,因此无需扩展常用的CrudRepository
。相反,您需要保存数据(也用于更新),并且需要查找现有用户。因此,您可以使用 Spring Data Common 的最小Repository
标记接口。它没有预定义的操作。
默认情况下,Spring Data REST 会导出它找到的任何存储库。您不希望公开此存储库以进行 REST 操作!应用@RepositoryRestResource(exported = false)
注释以阻止其导出。这可以防止存储库以及任何元数据被提供。
安全建模的最后一部分是将员工与其管理人员关联起来。在此领域,一个员工可以有一个管理人员,而一个管理人员可以有多个员工
@Data
@Entity
public class Employee {
private @Id @GeneratedValue Long id…
STS 中的 Spring Boot Dashboard - 第 3 部分:Spring Boot Devtools 重新加载
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 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 Boot Dashboard,这是 Spring Tool Suite 自 3.7.1 版本发布以来的新功能。请告诉我们您使用此 Dashboard 的体验。
本周 Spring(SpringOne2GX 回放/Pieter Humphrey 版本!)- 2015 年 10 月 21 日
欢迎来到另一期 本周 Spring!本周是(众多)第一周,非常棒的 [https://twitter.com/pieterhumphrey](Pieter Humphrey) 发布了大量 SpringOne2GX 2015 视频,供我们狂欢观看!本周丰富的综述大部分要归功于 Pieter 精心细致的转码、上传和发布 SpringOne2GX 2015 的视频 - 感谢 Pieter!因此,事不宜迟,让我们来看看本周的一些精选内容,包括来自 SpringOne2GX 的大量内容,包括..
- ..Juergen Holler 和 Stephane Nicoll 的演讲,介绍了 Spring 框架 4.2 的更新
- ..SpringOne2GX 第 1 天主题演讲,演讲者包括 James Watters、David Syer 博士、Scott Frederick、Juergen Hoeller 和我本人
- ..SpringOne2GX 第 2 天主题演讲,演讲者包括 Guillaume LaForge、Graeme Rocher、David Syer 博士、Mark Fisher、Scott Frederick 和我本人
- ..Spring Boot 和 Spring Cloud 联合创始人 Dave Syer 博士和我,在 Spring 创建者和英雄 Rod Johnson 博士 的非常慷慨客串下,发表了 介绍 Spring Cloud 的演讲(我从未像参与这次演讲那样荣幸,并且我真的…
SpringOne2GX 2015 回放:使用 Grails 启动物联网
录制于 SpringOne2GX 2015。
演讲者:Colin Harrington,OCI Web
幻灯片:http://www.slideshare.net/SpringCentral/booting-iot-with-grails
在云、虚拟化、容器化、微服务和纳米服务的世界中,我们谈论的是向上扩展、向外扩展和解耦我们的系统,但通常会忽略向下扩展到嵌入式平台。与此同时,我们已经摆脱了重量级的单体 Web 容器,我们也看到了像 RaspberryPi 这样的功能强大的低成本嵌入式 Linux 设备的兴起。
STS 中的 Spring Boot Dashboard - 第 2 部分:使用 Cloud Foundry
Spring 社区欢迎回来,
在本博文系列关于 Spring Tool Suite 中新的 Spring Boot Dashboard 的第二部分中,我们将超越工作区中的本地应用程序,并查看部署到云运行时的远程应用程序。如果您错过了 第一部分,请先阅读它,以熟悉 STS 中的 Boot Dashboard。
云运行时支持
我们在 Boot Dashboard 中支持的初始远程目标是 Cloud Foundry。Boot Dashboard 的设计和实现并不局限于此作为唯一支持的远程目标,它只是我们首先处理的第一个目标。
我们的目标是提供与本地应用类似的体验,让您能够轻松地交互、启动、停止、更新和查找 Cloud Foundry 上 Spring Boot 应用的日志输出。因此,您可以使用工具栏中的大加号图标向 Boot Dashboard 添加 Cloud Foundry 部分。
输入您的凭据并选择组织/空间后,Boot Dashboard 中将出现一个新部分,列出部署到 Cloud Foundry 上此空间的应用。您可以看到应用的名称以及配置的实例数和正在运行的实例数。
基本操作适用于 CF 上的一个或多个应用,其方式与本地应用的操作方式相同或非常相似。您可以跳转到控制台输出,它将显示在 STS/Eclipse 的控制台视图中,您可以启动和停止应用,您可以双击它们以转到正在运行的应用的浏览器窗口,您可以为应用配置默认路径,并且可以向这些应用添加/删除标签。如果您在这些目标部分中选择 Boot Dashboard 中的多个条目,您甚至可以跨目标执行某些操作(如启动和停止)。
除了适用于本地应用和 Cloud Foundry 上应用的常见操作之外,还有一些专门针对 Cloud Foundry 上应用的其他操作。例如,Boot Dashboard 允许您完全从 Cloud Foundry 中删除应用,或轻松跳转到 Web 控制台。
部署到 Cloud Foundry
到目前为止,我们讨论了 Cloud Foundry 上现有的应用。但是如何将您的应用部署到 Cloud Foundry 呢?有多种方法,可以使用 CLI 或 Cloud Foundry 的 Eclipse 插件。Boot Dashboard 为您提供了另一种选择:您可以将您的 Spring Boot 应用程序直接拖放到 Dashboard 中的 Cloud Foundry 目标上,它将把 Spring Boot 应用部署到 CF。这就像听起来一样简单。
如果您的应用程序包含 manifest.yml 文件,则将使用它来配置 Cloud Foundry 的应用程序。这通常包含应用的名称、域名、内存设置、实例数,以及可能还有更多内容。
如果您的项目中没有 manifest.yml 文件,则部署操作将在对话框中提示您输入部署应用所需的基本信息。
但请注意:如果项目包含 manifest.yml 文件,则将使用它来部署和配置应用。您可能通过 Web 控制台对 CF 上的配置所做的更改将在您下次使用 Boot Dashboard 重新启动/重新部署/更新应用时丢失。要么在 manifest.yml 文件中配置所有内容,要么完全不使用它 - 至少目前是这样。我们将努力改进这一点,以允许更灵活的方式处理 manifest.yml 文件和对应用配置的外部更改,但这将在 STS 的未来版本中完成。
应用部署后,Boot Dashboard 将保持工作区中项目与 Cloud Foundry 上部署的应用之间的关联(并在 Boot Dashboard 中显示此关联)。
保持工作区项目与 Cloud Foundry 上的应用之间的这种关联使更改此应用变得更加容易。如果您更改工作区中的代码并按下 CF 上应用的(重新)启动按钮,Boot Dashboard 将自动重新推送应用(更改)到 Cloud Foundry。
将应用部署到 Cloud Foundry 后,您通常不需要同时在本地处理所有内容。通常,您专注于应用程序的某些部分,有时您甚至希望同时使用两者:某些服务在 Cloud Foundry 上运行,而某些服务在 IDE 中的本地机器上运行。但是它们如何交互呢?
为混合部署隧道连接本地服务
作为一项早期实验,我们在 Boot Dashboard 中构建了一个特定功能,允许您使用 CF 上的所有服务和应用,并让它们调用在您的本地机器上运行的单个服务。这样,您可以专注于环境的各个项目,并继续使用 Cloud Foundry 运行您的其他部分。您可以快速迭代和在本地处理代码 - 并在与 Cloud Foundry 上的其他部分一起工作时进行测试。这不是很好吗?
其工作原理如下:您已为微服务实施了服务发现机制。目前,我们支持 Eureka 服务发现服务来实现此功能。您可以使用名为“(重新)启动并通过 ngrok 公开应用”的特殊操作启动本地 Spring Boot 应用。执行此操作将(重新)启动机器上的本地应用。同时,该操作将使用 ngrok 服务为此应用创建一个公开可见的隧道。结果,您将获得一个公开可见的 URL,该 URL 将其所有流量路由到您的本地机器和在本地机器上运行的本地 Spring Boot 应用。该应用会自动配置为使用此公开可见的隧道 URL 在远程 Eureka 上注册。
此服务的客户端现在将从 Eureka 获取此隧道 URL,而不是(或除了)可能已经在 Cloud Foundry 上运行的服务的默认实例 - 并将调用本地运行的服务而不是 CF 上的服务。您可以快速迭代本地服务,甚至对其进行调试。
此混合部署方案显然不适用于生产环境或团队环境,在这些环境中,多人同时使用 CF 上的应用程序。但这对于测试和开发环境非常有用。
对 Cloud Foundry 的支持仅仅是一个起点。Spring Boot Dashboard 绝不局限于或专注于 Cloud Foundry。将来可能会添加其他远程云运行时。我们将要处理的下一个运行时之一是 Lattice,但其他运行时也同样受欢迎。如果您有兴趣参与协作,请告诉我们。Spring Boot Dashboard 是在 EPL 下开源的,我们非常乐意与您合作开发其他功能并为其添加对更多云运行时的支持。
展望
本系列的第三部分将向您介绍对 Spring Boot Devtools 的内置支持,以及如何从 Boot Dashboard 中使用它们来快速修改您的应用(甚至在 CF 上)以及如何在 CF 上进行远程调试。
React.js 和 Spring Data REST:第 4 部分 - 事件
要查看此代码的更新,请访问我们的React.js 和 Spring Data REST 教程。
在 上一节中,您介绍了条件更新以避免在编辑相同数据时与其他用户发生冲突。您还了解了如何在后端使用乐观锁来对数据进行版本控制。如果有人编辑了相同的记录,您会收到提示,以便您可以刷新页面并获取更新。
这很好。但是您知道什么更好吗?当其他人更新资源时,UI 会动态响应。
在本课程中,您将学习如何使用 Spring Data REST 内置的事件系统来检测后端的更改,并通过 Spring 的 WebSocket 支持将更新发布到所有用户。然后,您将能够在数据更新时动态调整客户端。
随时可以从该存储库中获取代码并跟随操作。本课程基于上一课程的应用程序,并添加了一些额外内容。
向项目添加 Spring WebSocket 支持
在开始之前,您需要向项目的 pom.xml 文件中添加一个依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
这引入了 Spring Boot 的 WebSocket 启动器。
使用 Spring 配置 WebSockets
Spring 提供了强大的 WebSocket 支持。需要认识到的一点是,WebSocket 是一种非常底层的协议。它除了提供在客户端和服务器之间传输数据的方法外,几乎没有做其他事情。建议使用子协议(本课程使用 STOMP)来实际编码数据和路由。
以下代码用于在服务器端配置 WebSocket 支持
@Component
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {
static final String MESSAGE_PREFIX = "/topic";
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/payroll").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker(MESSAGE_PREFIX);
registry.setApplicationDestinationPrefixes("/app");
}
}
-
@EnableWebSocketMessageBroker
打开 WebSocket 支持。
-
AbstractWebSocketMessageBrokerConfigurer
提供了一个方便的基类来配置基本功能。
-
MESSAGE_PREFIX 是您将在每个消息的路由前添加的前缀。
-
registerStompEndpoints()
用于配置后端客户端和服务器连接的端点 (/payroll
)。
-
configureMessageBroker()
用于配置用于在服务器和客户端之间中继消息的代理。
通过此配置,现在可以利用 Spring Data REST 事件并通过 WebSocket 发布它们。
订阅 Spring Data REST 事件
Spring Data REST 基于在存储库上发生的事件生成多个应用程序事件。以下代码展示了如何订阅其中一些事件
@Component
@RepositoryEventHandler(Employee.class)
public class EventHandler {
private final SimpMessagingTemplate websocket;
private final EntityLinks entityLinks;
@Autowired
public EventHandler(SimpMessagingTemplate websocket,
EntityLinks entityLinks) {
this.websocket = websocket;
this…
2015 年 10 月 13 日的 Spring 本周要闻
欢迎来到另一期《本周 Spring 要闻》!本周我身处波兰克拉科夫,参加JDD,之后将前往俄罗斯圣彼得堡参加Joker 大会!
我们有很多内容要讲,所以让我们开始吧!
- 经过漫长的孕育期,我们的其中一位疯狂科学家Andy Wilkinson 刚刚宣布了 Spring REST Docs 项目的第一个 GA 版本,该项目使您可以轻松地根据用于测试被测 API 的测试来整合自动和人工增强的 API 文档。Spring REST Docs 已经取得了巨大的成功,绝对值得您花时间了解。
- Spring Tool Suite 负责人 Martin Lippert 刚刚发布了一篇关于 STS 中强大的本地 Spring Boot 应用程序功能的博文
- Mark Pollack 博士刚刚宣布发布 Spring XD 1.3M1,它……
STS 中的 Spring Boot 仪表板 - 第 1 部分:本地 Boot 应用程序
欢迎 Spring 社区,
这是三篇博文中的一篇,旨在向您介绍 STS 中新的 Spring Boot 仪表板。您将了解如何在 IDE 中使用 Spring Boot 仪表板,了解其提供的各种功能,以及它如何在您开发基于 Spring Boot 的应用程序时提供帮助。由于 Spring Boot 仪表板是在最近发布的 STS 3.7.1中引入的,因此您需要该版本才能遵循本博文系列。如果您尚未安装,请访问https://springframework.org.cn/tools/并获取您的副本。
简介
Spring Boot 现在已成为一项广泛采用的技术,可以简化您在为企业实施 Spring 应用程序时的工作。它特别适用于创建基于微服务的应用程序,它极大地改变了我们对小型且易于配置的 Spring 应用程序的思考方式。与 Spring Cloud 结合使用,它为真正云原生应用程序打开了大门,这些应用程序可能由许多微服务组成。
这种架构思维的重大转变也需要体现在我们的 IDE 中。我们大多数现有的传统 Java IDE 不仅是在云原生时代之前发明的,而且是在云时代之前,并在一定程度上是在编程的分布式时代之前发明的。Spring Tool Suite 及其基础 Eclipse IDE 也是如此。现在是时候将这些 IDE 推向云原生时代了。这就是 Spring Boot 仪表板的起点。它的重点是帮助您处理可能数量众多的基于 Spring Boot 的微服务应用程序,并在您在 IDE 中处理这些项目时让您的开发工作变得更加轻松。
Spring Boot 仪表板
Spring Boot 仪表板从小型和增量开始,作为 STS/Eclipse 中的一个附加视图。您可以通过按主工具栏中的 Spring Boot 按钮打开它。它打开一个与您的工作区项目同步的简单视图,显示工作区中是 Spring Boot 项目的那些项目。
Boot 仪表板的主要目的是让您可以快速访问您每天、每小时甚至更频繁执行的操作。您可以通过在 Boot 仪表板中选择它们并在工具栏中按“运行”或“调试”操作来快速启动您的 Boot 应用程序(以运行或调试模式)。没有比这更快的启动 Boot 应用程序的方法了。并且由于您可能会更改代码并希望重新启动应用程序,因此该操作允许您重新启动 Boot 应用程序(如果它已在运行)。更改您的代码,按 Boot 仪表板中的“运行”按钮,您的 Boot 应用程序将停止并为您重新启动。同样,这是一个简单的单击操作。
Boot 仪表板中这些操作(以及更多操作)最棒的一点是,它们可以同时对单个或多个项目进行操作。例如,如果您想同时启动或停止一堆 Boot 应用程序以启动一组协作服务,只需在仪表板中全部选择它们,然后按“运行”。就是这样。
一旦您在项目中采用 Spring Boot 1.3,您就会注意到 Boot 仪表板中显示了其他好处。一旦您的 Boot 应用程序启动,Boot 仪表板就会显示应用程序正在启动 - 并且它区分了启动阶段(VM 正在运行,但应用程序仍在初始化)以及它确实正在运行并可以使用。进度图标表示应用程序仍在启动,绿色“向上”图标在应用程序完全初始化并运行后显示。您无需观察日志输出,直到显示一些“服务器已启动”消息或类似内容。Boot 仪表板图标将让您知道。
应用程序运行后,它监听的端口将显示在 Boot 仪表板中 - 为您提供方便。您不再需要扫描日志输出以查找应用程序正在使用哪个端口。仪表板会自动显示该信息。如果您想跳转到正在运行的 Boot 应用程序的控制台输出,也可以快速执行此操作。
通常不再需要知道正在运行的应用程序的端口 - 因为您不必自己打开应用程序的浏览器选项卡。双击 Boot 仪表板中的项目,它将为您打开一个新的浏览器选项卡 - 直接导航到应用程序的默认 URL。
默认情况下,这将打开 Eclipse/STS 内部浏览器视图。如果您更喜欢使用外部浏览器,可以在首选项中设置。
如果此默认 URL 不是您希望默认访问的 URL,您可以自定义它。打开属性视图,在 Boot 仪表板中选择项目,然后输入您喜欢的默认 URL 扩展名。双击将打开应用程序的默认 URL + 您自定义的扩展名。
如果您不确定您的应用程序定义了哪些 URL 扩展名,可以在属性视图中选择“请求映射”选项卡。列出了正在运行的应用程序的所有请求映射 - 您自己定义的映射在顶部,来自库的映射在列表底部。双击 URL 扩展名将为该扩展名打开一个浏览器,双击代码指针将在编辑器中打开项目的相应文件,并跳转到定义请求映射的行。
您的工作区中拥有的微服务项目越多,您不太可能同时处理所有项目。您可能希望专注于一个子集。例如,您可能在 Eclipse/STS 中创建了一个工作集。Boot 仪表板允许您使用任意数量的标签(同样,在属性视图中)标记项目。然后,这些标签可以在筛选框(Boot 仪表板顶部)中使用,以减少 Boot 仪表板中显示的项目数量。
展望
本系列的第二部分将向您介绍 Boot 仪表板的 Cloud Foundry 集成,如何从 Boot 仪表板内部将微服务部署到 CF,以及如何将本地 Boot 应用程序与部署在 CF 上的应用程序结合使用。