Spring Cloud Stream Fishtown.RC1 / 2.1.0.RC1 版本发布公告

工程 | Oleg Zhurakousky | 2018年10月30日 | ...

我们高兴地宣布 Spring Cloud Stream Fishtown 发布列车发布首个候选版本 - Fishtown.RC1/2.1.0.RC1。

Spring Cloud Stream Fishtown 2.1.0.RC1 可在 Spring Milestone 仓库中使用。

以下部分简要总结了此版本中包含的功能和改进。

值得注意的依赖项升级

  • Spring Boot 2.1.0.RC1
  • Reactor Californium.RELEASE
  • Spring Cloud Function 2.1.0.RC1

Spring Cloud Function 支持

此版本的主要主题是引入了一种新的编程模型,该模型使用 Spring Cloud Function 作为定义流处理器的替代方法,现在可以将其表示为 `java.util.function.[Supplier/Function/Consumer]` 类型的 bean。

要指定哪个函数 bean 绑定到绑定公开的外部目标,必须提供 `spring.cloud.stream.function.definition` 属性。

以下是以 `java.util.function.Function` 公开消息处理器的处理器应用程序示例

@SpringBootApplication
@EnableBinding(Processor.class)
public class MyFunctionBootApp {

	public static void main(String[] args) {
		SpringApplication.run(MyFunctionBootApp.class, 
                  "--spring.cloud.stream.function.definition=toUpperCase");
	}

	@Bean
	public Function<String, String> toUpperCase() {
		return s -> s.toUpperCase();
	}
}

在上面,我们只需定义一个名为 *toUpperCase* 的 `java.util.function.Function` 类型 bean,并将其标识为用作消息处理器的 bean,其输入输出将绑定到处理器绑定公开的外部目标。

函数组合

使用此编程模型,您还可以从函数组合中受益,在该模型中,您可以从一组简单的函数动态组合复杂的处理器。例如,将以下函数 bean 添加到上面定义的应用程序中

@Bean
public Function<String, String> wrapInQuotes() {
	return s -> "\"" + s + "\"";
}

并修改 `spring.cloud.stream.function.definition` 属性以反映您希望从 *toUpperCase* 和 *wrapInQuotes* 组合新函数的意图。为此,Spring Cloud Function 允许您使用 `|`(管道)符号。因此,要完成我们的示例,我们的属性现在将如下所示

--spring.cloud.stream.function.definition=toUpperCase|wrapInQuotes

其他值得注意的功能、改进和增强功能

核心

  • 围绕多绑定场景的改进和增强
  • 对默认配置属性与绑定特定配置属性的处理进行了重大改进(涵盖核心、Rabbit 和 Kafka 绑定器)

除了 M1M2 中的更改和改进外,以下是此 版本 的改进列表

Rabbit 绑定器

除了 M1M2 中的更改和改进外,以下是此 版本 的改进列表

Kafka 绑定器

除了 M1M2 中的更改和改进外,以下是此 版本 的改进列表

质量改进

作为持续改进代码质量和评估框架组件的契约正确性的工作的一部分,我们有一个新的 验收测试项目 用于在 Cloud Foundry 和 Kubernetes 上引导 Spring Cloud Stream 应用程序。这些测试每天在全新铺设的环境中运行多次。我们希望这能为社区和客户在目标平台上构建更多自动化管道奠定基础。

Kinesis 绑定器

在此版本中,我们还希望重点介绍最近发布的 Kinesis 绑定器

注意

如果应用程序是从 Spring Initializr 创建的,则需要在 spring-cloud BOM 声明之前在 maven 依赖项管理中添加此 BOM 代码段,否则最终将使用最新的快照(这可能没问题,因为它将包含 M2 的所有工作)

<dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-stream-dependencies</artifactId>
           <version>Fishtown.RC1</version>
           <type>pom</type>
           <scope>import</scope>
</dependency>

后续步骤

RC2 计划在几周后发布,然后是 Fishtown.RELEASE。

与往常一样,我们欢迎您的反馈和贡献,请通过 Stack OverflowGitHubGitter 与我们联系。

获取 Spring 电子报

与 Spring 电子报保持联系

订阅

获取支持

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

了解更多信息

即将举行的活动

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

查看全部