4.2 和 4.3 之间的更改

请参阅 迁移指南,了解可能影响您应用程序的重要变更。您可以在 Wiki 上找到所有版本(回溯至 2.1)的迁移指南。

新组件

4.3 版本新增了一些组件。

AMQP 异步出站网关

请参阅 异步出站网关

MessageGroupFactory

我们引入了 MessageGroupFactory 策略,以允许控制 MessageGroupStore 逻辑中的 MessageGroup 实例。我们为 SimpleMessageGroup 添加了 SimpleMessageGroupFactory 实现,其中 GroupType.HASH_SET 是标准 MessageGroupStore 实现的默认工厂。有关更多信息,请参阅 消息存储

PersistentMessageGroup

我们为持久性 MessageGroupStore 实例添加了 PersistentMessageGroup(延迟加载代理)实现,当它们的 lazyLoadMessageGroupstrue(默认值)时,它会为 getMessageGroup() 返回此实例。有关更多信息,请参阅 消息存储

FTP 和 SFTP 流式入站通道适配器

我们新增了入站通道适配器,它为每个文件返回一个 InputStream,允许您在不将远程文件写入本地文件系统的情况下检索它们。有关更多信息,请参阅 FTP 流式入站通道适配器SFTP 流式入站通道适配器

StreamTransformer

我们添加了 StreamTransformer,用于将 InputStream 有效负载转换为 byte[]String。有关更多信息,请参阅 流转换器

集成图

我们新增了 IntegrationGraphServer,以及 IntegrationGraphController REST 服务,用于将 Spring Integration 应用程序的运行时模型公开为图。有关更多信息,请参阅 集成图

JDBC 锁注册表

我们新增了 JdbcLockRegistry,用于通过数据库表共享分布式锁。有关更多信息,请参阅 JDBC 锁注册表

LockRegistryLeaderInitiator

我们添加了基于 LockRegistry 策略的 LeaderInitiator 实现。有关更多信息,请参阅 领导力事件处理

一般变更

本节描述了 4.3 版本对 Spring Integration 带来的一般变更。

核心变更

本节描述了 Spring Integration 核心的一般变更。

链中的出站网关

以前,您可以在链中的出站网关上指定 reply-channel。它会被完全忽略。网关的回复会发送到下一个链元素,或者,如果网关是最后一个元素,则发送到链的输出通道。现在,此情况会被检测到并禁止。如果您有此配置,请删除 reply-channel

异步服务激活器

我们新增了一个选项,使服务激活器可以同步。有关更多信息,请参阅 异步服务激活器

消息注解支持变更

消息注解支持不再要求在类级别声明 @MessageEndpoint(或任何其他 @Component)注解。要恢复以前的行为,请将 spring.integration.propertiesspring.integration.messagingAnnotations.require.componentAnnotation 设置为 true。有关更多信息,请参阅 全局属性注解支持

邮件变更

本节描述了 Spring Integration 邮件功能的一般变更。

可定制的用户标记

现在,可定制的 userFlag(在 4.2.2 中添加,用于自定义表示邮件已读的标记)在 XML 命名空间中可用。有关更多信息,请参阅 当不支持 Recent 时标记 IMAP 消息

邮件消息映射

您现在可以使用包含邮件头的 MessageHeaders 和包含电子邮件内容的有效负载来映射入站邮件消息。以前,有效负载始终是原始的 MimeMessage。有关更多信息,请参阅 入站邮件消息映射

JMS 变更

本节描述了 Spring Integration JMS 功能的一般变更。

头映射器

DefaultJmsHeaderMapper 现在通过调用其 toString() 方法将标准 correlationId 头映射为消息属性。有关更多信息,请参阅 将消息头映射到 JMS 消息和从 JMS 消息映射

异步网关

JMS 出站网关现在具有 async 属性。有关更多信息,请参阅 异步网关

聚合器变更

当 POJO 聚合器释放 Message<?> 对象的集合时,行为发生了变化。这种情况很少见,但如果您的应用程序这样做,您需要对 POJO 进行一些小改动。有关更多信息,请参阅此 重要:SimpleMessageGroup.getMessages() 方法返回一个 unmodifiableCollection 注意。

[[tcp/udp-changes]] === TCP/UDP 变更

本节描述了 Spring Integration TCP/UDP 功能的一般变更。

事件

当服务器连接工厂启动时,会发出一个新的 TcpConnectionServerListeningEvent。有关更多信息,请参阅 TCP 连接事件

您现在可以在 <int-ip:udp-outbound-channel-adapter> 上使用 destination-expressionsocket-expression 属性。有关更多信息,请参阅 UDP 适配器

流反序列化器

各种直到整个消息组装完毕才能分配最终缓冲区的反序列化器现在支持将接收数据的原始缓冲区进行池化,而不是为每个消息创建和丢弃缓冲区。有关更多信息,请参阅 TCP 连接工厂

TCP 消息映射器

消息映射器现在可以选择设置配置的内容类型头。有关更多信息,请参阅 IP 消息头

文件变更

本节描述了 Spring Integration 文件功能的一般变更。

目标目录创建

FileWritingMessageHandler 生成的文件名可以表示子路径,以在目标目录中保存文件的所需目录结构。有关更多信息,请参阅 生成文件名

FileReadingMessageSource 现在将 WatchService 目录扫描逻辑隐藏在内部类中。我们添加了 use-watch-servicewatch-events 选项以启用此行为。由于 API 周围的不一致性,我们废弃了顶层 WatchServiceDirectoryScanner。有关更多信息,请参阅 WatchServiceDirectoryScanner

缓冲区大小

写入文件时,您现在可以指定缓冲区大小。

追加和刷新

您现在可以避免在追加时刷新文件,并使用多种策略在空闲期间刷新数据。有关更多信息,请参阅 使用 APPEND_NO_FLUSH 时刷新文件

保留时间戳

您现在可以将出站通道适配器配置为设置目标文件的 lastmodified 时间戳。有关更多信息,请参阅 文件时间戳

拆分器变更

当文件完全读取后,FileSplitter 现在会自动关闭 FTP 或 SFTP 会话。这适用于出站网关返回 InputStream 或您使用新的 FTP 或 SFTP 流式通道适配器的情况。我们还引入了一个新的 markers-json 选项,用于将 FileSplitter.FileMarker 转换为 JSON String,以实现宽松的下游网络交互。有关更多信息,请参阅 文件拆分器

文件过滤器

我们添加了 ChainFileListFilter 作为 CompositeFileListFilter 的替代方案。有关更多信息,请参阅 读取文件

AMQP 变更

本节描述了 Spring Integration AMQP 功能的一般变更。

内容类型消息转换器

出站端点现在支持配置了 ContentTypeDelegatingMessageConverterRabbitTemplate,这样您可以根据消息内容类型选择转换器。有关更多信息,请参阅 出站消息转换

延迟消息处理的头

Spring AMQP 1.6 增加了对 延迟消息交换 的支持。头映射现在支持此功能使用的头(amqp_delayamqp_receivedDelay)。

AMQP 支持的通道

AMQP 支持的通道现在支持消息映射。有关更多信息,请参阅 AMQP 支持的消息通道

Redis 变更

本节描述了 Spring Integration Redis 功能的一般变更。

[[list-push/pop-direction]] ==== 列表推入/弹出方向

以前,队列通道适配器总是以固定方向使用 Redis 列表,从左端推入,从右端读取。您现在可以使用 RedisQueueMessageDrivenEndpointRedisQueueOutboundChannelAdapterrightPopleftPush 选项分别配置读取和写入方向。有关更多信息,请参阅 Redis 队列入站通道适配器Redis 队列出站通道适配器

队列入站网关默认序列化器

入站网关中的默认序列化器已更改为 JdkSerializationRedisSerializer,以与出站网关兼容。有关更多信息,请参阅 Redis 队列入站网关

HTTP 变更

以前,对于没有 content-type 头的带有正文的请求(例如 POST),正文会被忽略。在此版本中,此类请求的内容类型被视为 application/octet-stream,如 RFC 2616 所建议。有关更多信息,请参阅 HTTP 入站组件

uriVariablesExpression 现在默认使用 SimpleEvaluationContext(自 4.3.15 起)。有关更多信息,请参阅 映射 URI 变量

SFTP 变更

本节描述了 Spring Integration SFTP 功能的一般变更。

工厂 Bean

我们新增了一个工厂 Bean,以简化 SFTP 的 Jsch 代理配置。有关更多信息,请参阅 JschProxyFactoryBean

chmod 变更

SFTP 出站网关(用于 putmput 命令)和 SFTP 出站通道适配器现在支持 chmod 属性,用于在上传后更改远程文件权限。有关更多信息,请参阅 SFTP 出站通道适配器SFTP 出站网关

FTP 变更

本节描述了 Spring Integration FTP 功能的一般变更。

会话变更

FtpSession 现在支持 list()listNames() 方法的 null,因为底层 FTP 客户端可以使用它。因此,您现在可以配置 FtpOutboundGateway 而无需 remoteDirectory 表达式。您还可以配置 <int-ftp:inbound-channel-adapter> 而无需 remote-directoryremote-directory-expression。有关更多信息,请参阅 FTP/FTPS 适配器

路由器变更

ErrorMessageExceptionTypeRouter 现在支持 Exception 超类映射,以避免在有多个继承者的情况下同一通道的重复。为此,ErrorMessageExceptionTypeRouter 在初始化期间加载映射类,以便在出现 ClassNotFoundException 时快速失败。

有关更多信息,请参阅 路由器

头映射

本节描述了 4.2 和 4.3 版本之间头映射的变更。

一般

AMQP、WS 和 XMPP 头映射(例如 request-header-mappingreply-header-mapping)现在支持否定模式。有关更多信息,请参阅 AMQP 消息头WS 消息头XMPP 消息头

AMQP 头映射

以前,默认情况下只映射标准 AMQP 头。您必须显式启用用户定义头的映射。在此版本中,默认情况下所有头都映射。此外,入站 amqp_deliveryMode 头不再默认映射。有关更多信息,请参阅 AMQP 消息头

Groovy 脚本

您现在可以使用 compile-static 提示或任何其他 CompilerConfiguration 选项配置 groovy 脚本。有关更多信息,请参阅 Groovy 配置

@InboundChannelAdapter 变更

@InboundChannelAdapter 现在具有常规 value 的别名 channel 属性。此外,目标 SourcePollingChannelAdapter 组件现在可以以后期绑定方式从其提供的名称(outputChannelName 选项)解析目标 outputChannel bean。有关更多信息,请参阅 注解支持

XMPP 变更

XMPP 通道适配器现在支持 XMPP 扩展 (XEP)。有关更多信息,请参阅 XMPP 扩展

WireTap 后期绑定

WireTap ChannelInterceptor 现在可以接受一个 channelName,该名称稍后在第一个活动拦截器操作期间解析为目标 MessageChannel。有关更多信息,请参阅 Wire Tap

ChannelMessageStoreQueryProvider 变更

ChannelMessageStoreQueryProvider 现在支持 H2 数据库。有关更多信息,请参阅 支持消息通道

WebSocket 变更

ServerWebSocketContainer 现在公开一个 allowedOrigins 选项,SockJsServiceOptions 公开一个 suppressCors 选项。有关更多信息,请参阅 WebSockets 支持

© . This site is unofficial and not affiliated with VMware.