领先一步
VMware 提供培训和认证,助您快速提升技能。
了解更多我很高兴地宣布,Spring Integration 的 Java DSL 1.2 M1
版本现已发布!
首先,我要感谢所有创建问题、提交 Pull Request、提供反馈或在 StackOverflow 上提问的人。如果没有社区,我们不可能取得今天的成功!
工件 org.springframework.integration:spring-integration-java-dsl:1.2.0.M1
可在 Milestone 仓库 中获取。所以,请尝试一下,并且不要犹豫,针对任何反馈提交 GH 问题!
当前版本的亮点
基于最近发布的 适用于 Apache Kafka 的 Spring 项目,引入了一个新的 Kafka09
工厂。这是一个简单的 Java DSL 工厂,用于基于 Spring for Apache Kafka 基础生成用于适配器的 IntegrationComponentSpec
流式 API 生成器。为了向后兼容,仍然存在用于 Apache Kafka 0.8
支持的现有 Kafka
工厂。
在许多情况下,最好根据系统状态甚至在某些业务函数调用期间指定集成流。或者甚至在执行后使其变得不稳定。为此,引入了 IntegrationFlowContext
组件以允许手动 IntegrationFlow
控制。
@Autowired
private IntegrationFlowContext context;
...
IntegrationFlow myFlow = f -> f
.<String, String>transform(String::toUpperCase)
.transform("Hello, "::concat);
String flowId = this.context.register(myFlow);
MessagingTemplate messagingTemplate = this.context.messagingTemplateFor(flowId);
assertEquals("Hello, SPRING",
messagingTemplate.convertSendAndReceive("spring", String.class));
this.context.remove(flowId);
有关更多信息,请参阅 IntegrationFlowContext
JavaDoc。
为了方便以 Spring Integration 的方式记录消息旅程(类似于 <logging-channel-adapter>
),引入了一个新的 log()
操作符。在底层,它仅由 WireTap
ChannelInterceptor
和 LoggingHandler
作为订阅者表示。它负责记录进入下一个端点消息。
.filter(...)
.log(LoggingHandler.Level.ERROR, "test.category", m -> m.getHeaders().getId())
.route(...)
在此示例中,仅针对通过过滤器并路由之前的消息,将 id
头以 ERROR
级别记录到 "test.category" 中。
为 MessageChannelSpec
生成器引入了 .wireTap()
流式 API。现在,目标配置从 Java DSL 使用中获得了更多好处。
@Bean
public QueueChannelSpec myChannel() {
return MessageChannels
.queue()
.wireTap("loggingFlow.input");
}
@Bean
public IntegrationFlow loggingFlow() {
return f -> f.log();
}
拥有用于 bean 的纯 Java 实例化,确实看起来足够自然,可以将路由键作为任何所需的类型,并避免将所有内容转换为 String
。此外,类型宽松允许我们将配置作为泛型感知。
@Bean
public IntegrationFlow payloadTypeRouteFlow() {
return f -> f
.<Object, Class>route(Object::getClass, m -> m
.channelMapping(String.class, "stringsChannel")
.channelMapping(Integer.class, "integersChannel"));
}
有关 1.2.0.M1
版本的更多信息,请参阅 提交历史。
维护版本 1.1.3
也已发布,其中包含一些严重的错误修复和 Spring Integration 4.3 兼容性。org.springframework.integration:spring-integration-java-dsl:1.1.3.RELEASE
工件可在 repo.spring.io 和 Maven Central 中获取。建议所有人升级,特别是如果您使用 JMS
工厂和实现 ApplicationListener
的 bean。
我们预计 1.2
版本的下一个里程碑版本 2 将很快发布,大约几周后,并在 8 月中旬发布 RC 和正式版本。同时,我们将把 spring-integration-java-dsl
项目并入 Spring Integration Core 5.0 版本,并使用 Java 8 代码库。当前的 1.2
版本将继续得到支持,但仅限于错误修复。