对于最新的稳定版本,请使用 Spring Integration 6.5.1! |
4.2 和 4.3 之间的更改
新组件
4.3 版本添加了许多新组件。
AMQP 异步出站网关
请参阅异步出站网关。
MessageGroupFactory
我们引入了MessageGroupFactory
允许控制MessageGroup
实例中的实例MessageGroupStore
逻辑。
我们添加了SimpleMessageGroupFactory
实现SimpleMessageGroup
,替换为GroupType.HASH_SET
作为默认值
工厂为标准MessageGroupStore
实现。
有关详细信息,请参阅消息存储。
PersistentMessageGroup
我们添加了PersistentMessageGroup
(延迟加载代理)实现MessageGroupStore
实例
返回此实例的getMessageGroup()
当他们的lazyLoadMessageGroups
是true
(默认值)。
有关详细信息,请参阅消息存储。
FTP 和 SFTP 流式入站通道适配器
我们添加了返回InputStream
对于每个文件,允许您检索远程文件而无需将它们写入本地文件系统。
有关详细信息,请参阅 FTP 流式入站通道适配器和 SFTP 流式入站通道适配器。
StreamTransformer
我们添加了StreamTransformer
将InputStream
有效负载到byte[]
或String
.
有关详细信息,请参阅流转换器。
积分图
我们添加了IntegrationGraphServer
,以及IntegrationGraphController
REST 服务,将 Spring Integration 应用程序的运行时模型公开为图形。
有关更多信息,请参阅集成图。
JDBC 锁注册表
我们添加了JdbcLockRegistry
用于通过数据库表共享的分布式锁。
有关更多信息,请参阅 JDBC 锁定注册表。
LeaderInitiator
为LockRegistry
我们添加了LeaderInitiator
基于LockRegistry
策略。
有关更多信息,请参阅领导事件处理。
一般更改
本节介绍 4.3 版为 Spring Integration 带来的一般更改。
核心变更
本节描述对 Spring Integration 核心的一般更改。
链中的出站网关
以前,您可以指定reply-channel
在链中的出站网关上。
它完全被忽视了。
网关的回复转到下一个链元素,或者,如果网关是最后一个元素,则转到链的输出通道。
现在检测到并禁止这种情况。
如果您有这样的配置,请删除reply-channel
.
异步服务激活器
我们添加了一个选项,使服务激活器是同步的。 有关详细信息,请参阅异步服务激活器。
邮件更改
本节介绍对 Spring Integration Mail 功能的一般更改。
可自定义的用户标志
可定制的userFlag
(在 4.2.2 中添加,以提供用于表示邮件已
seen)现在在 XML 命名空间中可用。
看在以下情况下标记 IMAP 消息Recent
不支持了解更多信息。
邮件消息映射
您现在可以使用MessageHeaders
包含邮件标头和包含电子邮件内容的有效负载。
以前,有效负载始终是原始的MimeMessage
.
有关详细信息,请参阅入站邮件消息映射。
JMS 更改
本节介绍对 Spring Integration JMS 功能的一般更改。
标头映射器
这DefaultJmsHeaderMapper
现在映射标准correlationId
header 作为消息属性,方法是调用其toString()
方法。
有关详细信息,请参阅将消息头映射到 JMS 消息或映射 JMS 消息。
异步网关
JMS 出站网关现在具有async
财产。
有关详细信息,请参阅异步网关。
聚合器更改
当 POJO 聚合器发布Message<?>
对象。
这种情况很少见,但是,如果您的应用程序这样做,则需要对 POJO 进行小的更改。
看到这个重要提示:该SimpleMessageGroup.getMessages()
方法返回一个unmodifiableCollection
.注意了解更多信息。
[[tcp/udp 更改]] === TCP/UDP 更改
本节介绍对 Spring Integration TCP/UDP 功能的一般更改。
事件
一个新的TcpConnectionServerListeningEvent
在启动服务器连接工厂时发出。
有关详细信息,请参阅 TCP 连接事件。
您现在可以使用destination-expression
和socket-expression
属性<int-ip:udp-outbound-channel-adapter>
.
有关更多信息,请参阅 UDP 适配器。
流解串器
在组装整个消息之前无法分配最终缓冲区的各种反序列化程序现在支持汇集接收数据的原始缓冲区,而不是为每条消息创建和丢弃缓冲区。 有关更多信息,请参阅 TCP 连接工厂。
TCP 消息映射器
消息映射器现在可以选择设置配置的内容类型标头。 有关详细信息,请参阅 IP 消息头。
文件更改
本节介绍对 Spring Integration File 功能的一般更改。
目标目录创建
生成的文件名FileWritingMessageHandler
可以表示一个子路径,用于在目标目录中保存文件所需的目录结构。
有关详细信息,请参阅生成文件名。
这FileReadingMessageSource
现在隐藏WatchService
内部类中的目录扫描逻辑。
我们添加了use-watch-service
和watch-events
选项来启用此行为。
我们弃用了顶级WatchServiceDirectoryScanner
因为 API 不一致。
看WatchServiceDirectoryScanner
了解更多信息。
追加和刷新
现在,您可以避免在追加时刷新文件,并使用多种策略在空闲期间刷新数据。
看使用时刷新文件APPEND_NO_FLUSH
了解更多信息。
保留时间戳
您现在可以配置出站通道适配器以设置目标文件的lastmodified
时间戳。
有关更多信息,请参阅文件时间戳。
分路器更改
这FileSplitter
现在在文件完全读取时自动关闭 FTP 或 SFTP 会话。
当出站网关返回InputStream
或者当您使用新的 FTP 或 SFTP 流式处理通道适配器时。
我们还引入了新的markers-json
转换选项FileSplitter.FileMarker
到 JSONString
用于轻松的下游网络交互。
有关更多信息,请参阅文件拆分器。
文件过滤器
我们添加了ChainFileListFilter
作为替代方案CompositeFileListFilter
.
有关详细信息,请参阅读取文件。
AMQP 更改
本节介绍对 Spring Integration AMQP 功能的一般更改。
内容类型消息转换器
出站终结点现在支持RabbitTemplate
配置了ContentTypeDelegatingMessageConverter
这样
您可以根据消息内容类型选择转换器。
有关详细信息,请参阅出站消息转换。
延迟消息处理的标头
Spring AMQP 1.6 增加了对延迟消息交换的支持。
标头映射现在支持标头 (amqp_delay
和amqp_receivedDelay
) 。
AMQP 支持的通道
AMQP 支持的通道现在支持消息映射。 有关详细信息,请参阅 AMQP 支持的消息通道。
Redis 更改
本节介绍对 Spring Integration Redis 功能的一般更改。
[[列表推送/弹出方向]] ==== 列表推送/弹出方向
以前,队列通道适配器总是在固定方向上使用 Redis 列表,推送到左端,从右端读取。
您现在可以使用rightPop
和leftPush
选项RedisQueueMessageDrivenEndpoint
和RedisQueueOutboundChannelAdapter
分别。
有关更多信息,请参阅 Redis 队列入站通道适配器和 Redis 队列出站通道适配器。
队列入站网关默认序列化程序
入站网关中的默认序列化程序已更改为JdkSerializationRedisSerializer
以与出站网关兼容。
有关更多信息,请参阅 Redis 队列入站网关。
HTTP 更改
以前,对于具有正文(例如POST
) 没有content-type
header,则忽略正文。
在此版本中,此类请求的内容类型被视为application/octet-stream
按建议
通过 RFC 2616。
有关更多信息,请参阅 Http 入站组件。
uriVariablesExpression
现在使用SimpleEvaluationContext
默认情况下(自 4.3.15 起)。
有关详细信息,请参阅映射 URI 变量。
SFTP 更改
本节介绍对 Spring Integration SFTP 功能的一般更改。
chmod
变化
SFTP 出站网关(对于put
和mput
命令),SFTP 出站通道适配器现在支持chmod
属性,在上传后更改远程文件权限。
看SFTP Outbound Channel Adapter
和SFTP Outbound Gateway
了解更多信息。
FTP 更改
本节介绍对 Spring Integration FTP 功能的一般更改。
会话更改
这FtpSession
现在支持null
对于list()
和listNames()
方法,因为底层 FTP 客户端可以使用它。
这样,您现在可以配置FtpOutboundGateway
如果没有remoteDirectory
表达。
您还可以配置<int-ftp:inbound-channel-adapter>
没有remote-directory
或remote-directory-expression
.
有关更多信息,请参阅 FTP/FTPS 适配器。
路由器更改
这ErrorMessageExceptionTypeRouter
现在支持Exception
超类映射以避免在多个继承器的情况下对同一通道重复。
为此,该ErrorMessageExceptionTypeRouter
在初始化期间加载映射类以快速失败ClassNotFoundException
.
有关更多信息,请参阅路由器。
标头映射
本节介绍 4.2 版和 4.3 版之间对标头映射的更改。
AMQP 标头映射
以前,默认情况下仅映射标准 AMQP 标头。
您必须显式启用用户定义标头的映射。
在此版本中,默认情况下映射所有标头。
此外,入站amqp_deliveryMode
默认情况下不再映射标头。
有关详细信息,请参阅 AMQP 消息标头。
Groovy 脚本
您现在可以使用compile-static
提示或任何其他CompilerConfiguration
选项。
有关更多信息,请参阅 Groovy 配置。
@InboundChannelAdapter
变化
这@InboundChannelAdapter
现在有一个别名channel
常规属性value
. 此外,目标SourcePollingChannelAdapter
组件现在可以解析目标outputChannel
bean 来自其提供的名称 (outputChannelName
选项)以后期绑定方式。有关更多信息,请参阅注释支持。
XMPP 更改
XMPP 通道适配器现在支持 XMPP 扩展 (XEP)。有关详细信息,请参阅 XMPP 扩展。
窃听后期绑定
这WireTap
ChannelInterceptor
现在可以接受一个channelName
解析为目标MessageChannel
后来,在第一次主动拦截器行动中。
有关更多信息,请参阅窃听。
ChannelMessageStoreQueryProvider
变化
这ChannelMessageStoreQueryProvider
现在支持 H2 数据库。
有关详细信息,请参阅支持消息通道。
WebSocket 更改
这ServerWebSocketContainer
现在公开一个allowedOrigins
选项,以及SockJsServiceOptions
公开一个suppressCors
选择。
有关更多信息,请参阅 WebSockets 支持。