领先一步
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 中找到。此版本包含一些 重要的错误修复,建议所有用户都升级到此版本。
4.3 只是一个次要版本,与 4.2 相比,它有一些新功能和改进,并且将结束 4.x 系列。与此同时,我们期待在 Spring Integration 5.0 中拥抱 JVM 的响应式基础。我们尚未确定这到底意味着什么,敬请关注!此外,5.0 (2017) 将包含(目前独立的)Spring Integration Java DSL。
以下是此版本的一些亮点(其中一些已在之前的里程碑中宣布)
之前已宣布
HeaderMapper
的 negate
选项,允许使用逻辑 NOT !
排除请求和/或回复标头。(例如 !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 />
),对象图中的每个节点都包含这些统计信息(消息计数、响应时间等)。(自上次里程碑中宣布该图以来,已经对其进行了一些改进,包括:对链的支持 - 处理程序列表,
持久化 MessageStore
现在支持 MessageGroup
检索的 Lazy-Load
算法(默认启用)。在处理具有聚合等操作的大型持久化组时,这会产生显着的性能优势。
服务激活器现在支持 async
选项。如果服务返回 ListenableFuture<?>
并且 async
为 true
,则调用线程会立即释放,并且回复消息将在完成 future 的线程(从您的服务中)上发送。基于此基础,我们还提供了一个 AsyncAmqpOutboundGateway
和 async
模式的 JmsOutboundGateway
,其中下游流程在回复监听器容器线程上运行。
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"/>
现在可以使用 compile-static
或 compiler-configuration
配置 Groovy 脚本,以实现更高的性能或为目标 AST 提供一些异构自定义。
WatchServiceDirectoryScanner
已经过多次改进。它的逻辑已通过 use-watch-service
标志直接移动到 FileReadingMessageSource
。此外,我们可以指定要侦听目录树上的 WatchEventType
s。此外,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 日在拉斯维加斯举行,如果您尚未这样做,您应该考虑 购买您的门票。