对于最新的稳定版本,请使用 Spring Integration 6.4.4!spring-doc.cadn.net.cn

4.2 和 4.3 之间的更改

请参阅迁移指南,了解可能影响应用程序的重要更改。 您可以在 Wiki 上找到 2.1 之前所有版本的迁移指南。spring-doc.cadn.net.cn

新组件

版本 4.3 添加了许多新组件。spring-doc.cadn.net.cn

AMQP 异步出站网关

MessageGroupFactory

我们引入了MessageGroupFactory允许控制MessageGroup中的 实例MessageGroupStore逻辑。 我们添加了SimpleMessageGroupFactory实现SimpleMessageGroup,使用GroupType.HASH_SET作为默认值 工厂为 标准MessageGroupStore实现。 有关更多信息,请参阅 Message Store 。spring-doc.cadn.net.cn

PersistentMessageGroup

我们添加了PersistentMessageGroup(lazy-load proxy) 实现MessageGroupStore实例 返回getMessageGroup()当他们的lazyLoadMessageGroups是true(默认值)。 有关更多信息,请参阅 Message Store 。spring-doc.cadn.net.cn

FTP 和 SFTP 流入站通道适配器

我们添加了入站通道适配器,这些适配器返回InputStream,允许您检索远程文件,而无需将其写入本地文件系统。 有关更多信息,请参阅 FTP 流入站通道适配器 和 SFTP 流入站通道适配器。spring-doc.cadn.net.cn

StreamTransformer

我们添加了StreamTransformer要将InputStreampayload 复制到byte[]或String. 有关更多信息,请参阅 Stream Transformer 。spring-doc.cadn.net.cn

集成图

我们添加了IntegrationGraphServer与IntegrationGraphControllerREST 服务,将 Spring Integration 应用程序的运行时模型公开为图形。 有关更多信息,请参阅 Integration Graph。spring-doc.cadn.net.cn

JDBC Lock Registry

我们添加了JdbcLockRegistry对于通过数据库表共享的分布式锁。 有关更多信息,请参阅 JDBC Lock Registry。spring-doc.cadn.net.cn

LeaderInitiator为LockRegistry

我们添加了LeaderInitiator基于LockRegistry策略。 有关更多信息,请参阅 领导事件处理 。spring-doc.cadn.net.cn

一般更改

本节描述了版本 4.3 为 Spring 集成带来的一般更改。spring-doc.cadn.net.cn

核心变更

本节描述了对 Spring 集成核心的一般更改。spring-doc.cadn.net.cn

链中的出站网关

以前,您可以指定reply-channel在链内的出站网关上。 它完全被忽视了。 gateway 的回复将转到下一个 chain element,或者,如果 gateway 是最后一个 element,则返回到 chain 的 output channel。 现在,系统会检测并禁止此情况。 如果您有这样的配置,请删除reply-channel.spring-doc.cadn.net.cn

异步服务激活器

我们添加了一个选项,使服务激活器同步。 有关更多信息,请参阅 Asynchronous Service Activator 。spring-doc.cadn.net.cn

消息注释支持更改

消息传递注释支持不需要@MessageEndpoint(或任何其他@Component) 注解声明。 要恢复之前的行为,请将spring.integration.messagingAnnotations.require.componentAnnotation之spring.integration.properties自true. 有关更多信息,请参阅全局属性和注释支持。spring-doc.cadn.net.cn

邮件更改

本节描述了对 Spring 集成邮件功能的一般更改。spring-doc.cadn.net.cn

可自定义的用户标志

可定制的userFlag(在 4.2.2 中添加,以提供用于表示邮件已 seen) 现在在 XML 命名空间中可用。 看在以下情况下标记 IMAP 邮件Recent不支持了解更多信息。spring-doc.cadn.net.cn

邮件消息映射

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

JMS 更改

本节描述了对 Spring 集成 JMS 功能的一般更改。spring-doc.cadn.net.cn

标头映射器

这DefaultJmsHeaderMapper现在映射标准correlationIdheader 作为 Message 属性,方法是调用其toString()方法。 有关更多信息,请参见Mapping Message Headers to and from JMS Message。spring-doc.cadn.net.cn

异步网关

JMS 出站网关现在有一个async财产。 有关更多信息,请参阅异步网关。spring-doc.cadn.net.cn

Aggregator 更改

当 POJO 聚合器发布Message<?>对象。 这种情况很少见,但是,如果您的应用程序这样做,则需要对 POJO 进行少量更改。 查看此内容重要说明:SimpleMessageGroup.getMessages()method 返回一个unmodifiableCollection.注意以了解更多信息。spring-doc.cadn.net.cn

[[tcp/udp 更改]] === TCP/UDP 更改spring-doc.cadn.net.cn

本节描述了对 Spring 集成 TCP/UDP 功能的一般更改。spring-doc.cadn.net.cn

事件

新的TcpConnectionServerListeningEvent在启动 Server Connection Factory 时发出。 有关更多信息,请参阅 TCP 连接事件。spring-doc.cadn.net.cn

您现在可以使用destination-expression和socket-expressionattributes 开启<int-ip:udp-outbound-channel-adapter>. 有关更多信息,请参阅 UDP 适配器。spring-doc.cadn.net.cn

流反序列化器

在组装整个消息之前无法分配最终缓冲区的各种反序列化器现在支持池化接收数据的原始缓冲区,而不是为每个消息创建和丢弃缓冲区。 有关更多信息,请参阅 TCP 连接工厂。spring-doc.cadn.net.cn

TCP 消息映射器

消息映射器现在可以选择设置配置的内容类型标头。 有关更多信息,请参阅 IP 消息报头。spring-doc.cadn.net.cn

文件更改

本节描述了对 Spring 集成文件功能的一般更改。spring-doc.cadn.net.cn

目标目录创建

为FileWritingMessageHandler可以表示一个子路径,用于在目标目录中保存文件的所需目录结构。 有关更多信息,请参阅生成文件名。spring-doc.cadn.net.cn

这FileReadingMessageSource现在隐藏了WatchService目录扫描逻辑。 我们添加了use-watch-service和watch-events选项来启用此行为。 我们弃用了顶级WatchServiceDirectoryScanner因为 API 不一致。 看WatchServiceDirectoryScanner了解更多信息。spring-doc.cadn.net.cn

缓冲区大小

在写入文件时,您现在可以指定缓冲区大小。spring-doc.cadn.net.cn

追加和刷新

现在,您可以在追加时避免刷新文件,并在空闲期间使用多种策略刷新数据。 看使用 时刷新文件APPEND_NO_FLUSH了解更多信息。spring-doc.cadn.net.cn

保留时间戳

现在,您可以配置出站通道适配器以设置目标文件的lastmodified时间戳。 有关更多信息,请参阅 File Timestamps 文件时间戳。spring-doc.cadn.net.cn

Splitter 更改

这FileSplitter现在,当文件完全读取时,它会自动关闭 FTP 或 SFTP 会话。 当出站网关返回InputStream或者当您使用新的 FTP 或 SFTP 流媒体频道适配器时。 我们还引入了一个新的markers-json转换选项FileSplitter.FileMarker转换为 JSONString轻松的下游网络交互。 有关更多信息,请参阅 File Splitter 。spring-doc.cadn.net.cn

文件过滤器

我们添加了ChainFileListFilter作为CompositeFileListFilter. 有关更多信息,请参阅读取文件。spring-doc.cadn.net.cn

AMQP 更改

本节描述了对 Spring 集成 AMQP 功能的一般更改。spring-doc.cadn.net.cn

内容类型消息转换器

出站终端节点现在支持RabbitTemplate配置了ContentTypeDelegatingMessageConverter这样 ,您可以根据 Message 内容类型选择转换器。 有关更多信息,请参阅 出站消息转换。spring-doc.cadn.net.cn

延迟消息处理的标头

Spring AMQP 1.6 增加了对延迟消息交换的支持。 标头映射现在支持标头 (amqp_delay和amqp_receivedDelay) 中。spring-doc.cadn.net.cn

AMQP 支持的通道

AMQP 支持的通道现在支持消息映射。 有关更多信息,请参见 AMQP 支持的消息通道。spring-doc.cadn.net.cn

Redis 更改

本节描述了 Spring Integration Redis 功能的一般更改。spring-doc.cadn.net.cn

[[列表推送/弹出方向]] ==== 列表推/弹出方向spring-doc.cadn.net.cn

以前,队列通道适配器总是在固定方向上使用 Redis 列表,推送到左端并从右端读取。 现在,您可以使用rightPop和leftPush选项RedisQueueMessageDrivenEndpoint和RedisQueueOutboundChannelAdapter分别。 有关更多信息,请参阅 Redis Queue Inbound Channel Adapter 和 Redis Queue Outbound Channel Adapter。spring-doc.cadn.net.cn

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

入站网关中的默认序列化程序已更改为JdkSerializationRedisSerializer以实现与出站网关的兼容性。 有关更多信息,请参阅 Redis 队列入站网关。spring-doc.cadn.net.cn

HTTP 更改

以前,对于具有正文(例如POST),没有content-type标头,则正文将被忽略。 在此版本中,此类请求的内容类型被视为application/octet-stream按推荐 由 RFC 2616 提供。 有关更多信息,请参阅 Http 入站组件。spring-doc.cadn.net.cn

uriVariablesExpression现在使用SimpleEvaluationContext默认情况下(自 4.3.15 起)。 有关更多信息,请参阅映射 URI 变量。spring-doc.cadn.net.cn

SFTP 更改

本节描述了对 Spring 集成 SFTP 功能的一般更改。spring-doc.cadn.net.cn

工厂 Bean

我们添加了一个新的工厂 Bean 来简化 SFTP 的 Jsch 代理的配置。 看JschProxyFactoryBean了解更多信息。spring-doc.cadn.net.cn

chmod变化

SFTP 出站网关(用于put和mput命令),并且 SFTP 出站通道适配器现在支持chmod属性以在上传后更改远程文件权限。 看SFTP Outbound Channel Adapter和SFTP Outbound Gateway了解更多信息。spring-doc.cadn.net.cn

FTP 更改

本节描述了对 Spring 集成 FTP 功能的一般更改。spring-doc.cadn.net.cn

会话更改

这FtpSession现在支持null对于list()和listNames()方法,因为底层 FTP 客户端可以使用它。 这样,您现在可以配置FtpOutboundGateway如果没有remoteDirectory表达。 您还可以配置<int-ftp:inbound-channel-adapter>没有remote-directory或remote-directory-expression. 有关更多信息,请参阅 FTP/FTPS 适配器。spring-doc.cadn.net.cn

路由器更改

这ErrorMessageExceptionTypeRouter现在支持Exception超类映射,以避免在多个继承者的情况下同一通道重复。 为此,ErrorMessageExceptionTypeRouter在初始化期间加载映射类以快速失败ClassNotFoundException.spring-doc.cadn.net.cn

标头映射

本节介绍版本 4.2 和 4.3 之间标头映射的更改。spring-doc.cadn.net.cn

常规

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

AMQP 标头映射

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

Groovy 脚本

现在,您可以使用compile-static提示或任何其他CompilerConfiguration选项。 有关更多信息,请参阅 Groovy 配置。spring-doc.cadn.net.cn

@InboundChannelAdapter变化

这@InboundChannelAdapter现在有一个别名channel属性value. 此外,目标SourcePollingChannelAdapter组件现在可以解析目标outputChannelbean 从其提供的名称 (outputChannelNameoptions) 中。 有关更多信息,请参阅 Annotation Support 。spring-doc.cadn.net.cn

XMPP 更改

XMPP 通道适配器现在支持 XMPP 扩展 (XEP)。 有关更多信息,请参阅 XMPP 扩展 。spring-doc.cadn.net.cn

WireTap 延迟绑定

这WireTap ChannelInterceptor现在可以接受channelName解析为目标MessageChannel稍后,在第一次主动拦截器作期间。 有关详细信息,请参见 Wire Tap。spring-doc.cadn.net.cn

ChannelMessageStoreQueryProvider变化

这ChannelMessageStoreQueryProvider现在支持 H2 数据库。 有关更多信息,请参阅 Backing Message Channels。spring-doc.cadn.net.cn

WebSocket 更改

这ServerWebSocketContainer现在公开了一个allowedOrigins选项和SockJsServiceOptions暴露一个suppressCors选择。 有关更多信息,请参阅 WebSockets 支持。spring-doc.cadn.net.cn