领先一步
VMware 提供培训和认证,助您加速进步。
了解更多很高兴地宣布 Spring Integration 4.3.0.RC1 - 这是第一个(也是最后一个)发布候选版本;它已在 spring milestone repo 上提供。GA 版本应该在 Spring Framework 4.3 的 GA 版本发布后不久推出。
4.2.6.RELEASE 也已在 spring release repo 和 Maven Central 上提供。此版本包含了一些 重要的 bug 修复,鼓励所有用户升级。
4.3 只是一个次要版本,与 4.2 相比只有少数新增功能和改进,并将作为 4.x 系列的最终版本。与此同时,我们期待在 Spring Integration 5.0 中拥抱 JVM 的响应式基础。我们尚未完全确定这意味着什么,敬请关注!此外,5.0 (2017) 将包含(目前是独立的)Spring Integration Java DSL。
以下是本次发布的一些亮点(其中一些先前已在早期里程碑版本中宣布)
先前已宣布
为 HeaderMappers 添加了一个 negate 选项,允许使用逻辑非 ! 来排除请求和/或回复头。 (例如:!foo,* - 映射除 foo 之外的所有头)。
为 ErrorMessageExceptionTypeRouter 添加了 Exception 超类映射,以避免不同继承者之间的映射重复。
FTP 适配器中的 list() 和 listNames() 函数支持 null 远程目录,以在列出当前工作目录时满足标准的 FTP 协议支持。
在 Redis 队列适配器中提供了一个选项来更改 Redis 列表推/拉操作的方向。
FileWritingMessageHandler 支持文件名称中的子路径,允许本地恢复目录结构,例如在解压缩后。
升级到 Smack-4.1.x。
升级到 Spring Amqp 1.6,支持其新功能,如延迟消息交换。
Spring Integration 运行时对象模型连同组件指标现在可以公开为一个 graph,可用于可视化集成应用程序的当前状态。在 Web 容器中运行时,@EnableIntegrationGraphController 注解与 IntegrationGraphServer bean 一起创建一个服务,通过 REST 协议检索模型和状态,例如以 JSON 格式。
{
"nodes": [
{
"nodeId": 1,
"name": "nullChannel",
"componentType": "channel",
},
{
"nodeId": 2,
"name": "errorChannel",
"componentType": "publish-subscribe-channel",
},
{
"nodeId": 3,
"name": "_org.springframework.integration.errorLogger",
"componentType": "logging-channel-adapter",
"output": null,
"input": "errorChannel"
}
],
"links": [
{
"from": 2,
"to": 3
}
]
}
秉承 Spring Integration 的传统,消息通道在此模型中被表示为一等公民(节点),而不仅仅是节点之间的链接。另外,当启用统计信息(@EnableIntegrationManagement 或 <int:management />)时,对象图中的每个节点都包含这些统计信息(消息计数、响应时间等)。(自上次里程碑版本宣布以来,图表已得到一些改进,包括:支持链 - 处理程序列表,
持久化的 MessageStores 现在支持用于 MessageGroup 检索的 Lazy-Load 算法(默认启用)。当处理大型持久化组并进行聚合等操作时,这将带来显著的性能提升。
Service Activator 现在支持 async 选项。如果服务返回 ListenableFuture<?> 并且 async 为 true,则调用线程立即释放,回复消息将在完成 future 的线程(在您的服务内部)上发送。基于此基础,我们还提供了 AsyncAmqpOutboundGateway 和 JmsOutboundGateway 的 async 模式,其中下游流在回复监听器容器线程上运行。
XMPP 适配器现在支持 Extensions (XEP)。因此,例如,您可以更轻松地与Google Cloud Messaging (GCM) 进行交互。
<int-xmpp:inbound-channel-adapter id="xmppInboundAdapter"
payload-expression="getExtension('google:mobile:data').json"/>
...
<bean id="gcmExtensionProvider" class="org.jivesoftware.smackx.gcm.provider.GcmExtensionProvider"/>
<int-xmpp:outbound-channel-adapter id="xmppOutboundAdapter"
extension-provider="gcmExtensionProvider"/>
Groovy 脚本现在可以使用 compile-static 或 compiler-configuration 进行配置,以获得更高的性能或为目标 AST 提供一些特殊的定制。
WatchServiceDirectoryScanner 经过了几项改进。其逻辑已通过 use-watch-service 标志直接移至 FileReadingMessageSource。此外,我们可以指定要监听目录树的 WatchEventTypes。另外,StandardWatchEventKinds.ENTRY_DELETE 事件被视为 ResettableFileListFilter.remove() 操作,例如从 AcceptOnceFilteListFilter 中删除文件。
实现了更多通道延迟绑定的场景。例如,在 WireTap 中,这导致了
Spring Integration Java DSL 中的 MessageChannelSpec.wireTap() 功能。
RC 版本新增
FTP/SFTP 入站通道适配器现在支持直接流式传输文件内容,避免了复制到本地文件系统。
TCP 反序列化器现在可以配置为使用缓冲区池。
各种小的修复和改进。
本次发布解决了超过 125 个 JIRA 问题。另请参阅新增功能以了解主要变化的摘要。我们非常感谢该项目收到的许多外部贡献 - 感谢大家!。
项目主页 | JIRA | [贡献] (https://github.com/spring-projects/spring-integration/blob/master/CONTRIBUTING.md) | StackOverflow (spring-integration 标签)
如果您将参加在巴塞罗那举行的 Spring IO 大会,我将于 5 月 20 日星期五就 Spring Integration 和 Spring AMQP 发表演讲。Spring 团队成员还有许多其他精彩的演讲,请查看议程。
此外,提醒一下,今年的 Spring One Platform 将于 8 月 1 日至 4 日在拉斯维加斯举行,如果您还没有购票,应该考虑购买门票。