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

4.2 和 4.3 之间的更改

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

新组件

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

AMQP 异步出站网关

MessageGroupFactory

我们引入了允许控制 logic 中的实例的策略。 我们为 添加了 的 实现,其中 为 默认 factory 进行标准实现。 有关更多信息,请参阅 Message StoreMessageGroupFactoryMessageGroupMessageGroupStoreSimpleMessageGroupFactorySimpleMessageGroupGroupType.HASH_SETMessageGroupStorespring-doc.cn

PersistentMessageGroup

我们为持久化实例添加了 (lazy-load proxy) 实现, 它返回此实例 when there is (default)。 有关更多信息,请参阅 Message StorePersistentMessageGroupMessageGroupStoregetMessageGroup()lazyLoadMessageGroupstruespring-doc.cn

FTP 和 SFTP 流入站通道适配器

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

StreamTransformer

我们添加了将有效负载转换为 a 或 a 的功能。 有关更多信息,请参阅 Stream TransformerStreamTransformerInputStreambyte[]Stringspring-doc.cn

集成图

我们添加了 和 REST 服务,以将 Spring 集成应用程序的运行时模型公开为图形。 有关更多信息,请参阅 Integration GraphIntegrationGraphServerIntegrationGraphControllerspring-doc.cn

JDBC Lock Registry

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

LeaderInitiatorLockRegistry

我们添加了基于策略的 implementation 。 有关更多信息,请参阅 领导事件处理LeaderInitiatorLockRegistryspring-doc.cn

一般更改

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

核心变更

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

链中的出站网关

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

异步服务激活器

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

消息注释支持更改

消息传递注释支持不需要类级别的(或任何其他)注释声明。 要恢复以前的行为,请将 of 设置为 . 有关更多信息,请参阅全局属性注释支持@MessageEndpoint@Componentspring.integration.messagingAnnotations.require.componentAnnotationspring.integration.propertiestruespring-doc.cn

邮件更改

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

可自定义的用户标志

可自定义的(在 4.2.2 中添加,以提供用于表示邮件已 seen) 现在在 XML 命名空间中可用。 有关更多信息,请参阅在不支持 Recent 时标记 IMAP 消息userFlagspring-doc.cn

邮件消息映射

现在,您可以将入站邮件消息与包含邮件标头的有效负载和包含电子邮件内容的有效负载进行映射。 以前,有效负载始终是 raw 。 有关更多信息,请参阅入站邮件映射MessageHeadersMimeMessagespring-doc.cn

JMS 更改

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

标头映射器

现在,通过调用其方法将标准标头映射为 message 属性。 有关更多信息,请参见Mapping Message Headers to and from JMS MessageDefaultJmsHeaderMappercorrelationIdtoString()spring-doc.cn

异步网关

JMS 出站网关现在具有一个属性。 有关更多信息,请参阅异步网关asyncspring-doc.cn

Aggregator 更改

当 POJO 聚合器释放对象集合时,行为会发生变化。 这种情况很少见,但是,如果您的应用程序这样做,则需要对 POJO 进行少量更改。 请参阅此 重要提示:SimpleMessageGroup.getMessages() 方法返回一个 unmodifiableCollectionnote 了解更多信息。Message<?>spring-doc.cn

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

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

事件

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

现在,您可以在 . 有关更多信息,请参阅 UDP 适配器destination-expressionsocket-expression<int-ip:udp-outbound-channel-adapter>spring-doc.cn

流反序列化器

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

TCP 消息映射器

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

文件更改

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

目标目录创建

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

现在,将目录扫描逻辑隐藏在内部类中。 我们添加了 and 选项来启用此行为。 由于 API 不一致,我们弃用了 top-level。 有关更多信息,请参阅 WatchServiceDirectoryScannerFileReadingMessageSourceWatchServiceuse-watch-servicewatch-eventsWatchServiceDirectoryScannerspring-doc.cn

缓冲区大小

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

追加和刷新

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

保留时间戳

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

Splitter 更改

现在,当文件完全读取时,它会自动关闭 FTP 或 SFTP 会话。 当出站网关返回 或当您使用新的 FTP 或 SFTP 流频道适配器时,这适用。 我们还引入了一个新选项,可以转换为 JSON 以实现轻松的下游网络交互。 有关更多信息,请参阅 File SplitterFileSplitterInputStreammarkers-jsonFileSplitter.FileMarkerStringspring-doc.cn

文件过滤器

我们添加了作为 . 有关更多信息,请参阅读取文件ChainFileListFilterCompositeFileListFilterspring-doc.cn

AMQP 更改

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

内容类型消息转换器

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

延迟消息处理的标头

Spring AMQP 1.6 增加了对延迟消息交换的支持。 标头映射现在支持此功能使用的标头 ( 和 )。amqp_delayamqp_receivedDelayspring-doc.cn

AMQP 支持的通道

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

Redis 更改

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

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

以前,队列通道适配器总是在固定方向上使用 Redis 列表,推送到左端并从右端读取。 现在,您可以分别使用 和 的 和 选项来配置读取和写入方向。 有关更多信息,请参阅 Redis Queue Inbound Channel AdapterRedis Queue Outbound Channel AdapterrightPopleftPushRedisQueueMessageDrivenEndpointRedisQueueOutboundChannelAdapterspring-doc.cn

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

入站网关中的默认序列化程序已更改为 a,以便与出站网关兼容。 有关更多信息,请参阅 Redis 队列入站网关JdkSerializationRedisSerializerspring-doc.cn

HTTP 更改

以前,对于正文(例如 )没有标头的请求,会忽略正文。 在此版本中,此类请求的内容类型被视为与建议的内容类型 由 RFC 2616 提供。 有关更多信息,请参阅 Http 入站组件POSTcontent-typeapplication/octet-streamspring-doc.cn

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

SFTP 更改

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

工厂 Bean

我们添加了一个新的工厂 Bean 来简化 SFTP 的 Jsch 代理的配置。 有关更多信息,请参阅。JschProxyFactoryBeanspring-doc.cn

chmod变化

SFTP 出站网关(for 和 commands)和 SFTP 出站通道适配器现在支持在上传后更改远程文件权限的属性。 有关更多信息,请参阅 和 。putmputchmodSFTP Outbound Channel AdapterSFTP Outbound Gatewayspring-doc.cn

FTP 更改

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

会话更改

现在支持 and 方法,因为底层 FTP 客户端可以使用它。 这样,您现在可以配置没有表达式的 。 您还可以配置 without 或 . 有关更多信息,请参阅 FTP/FTPS 适配器FtpSessionnulllist()listNames()FtpOutboundGatewayremoteDirectory<int-ftp:inbound-channel-adapter>remote-directoryremote-directory-expressionspring-doc.cn

路由器更改

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

有关详细信息,请参阅路由器spring-doc.cn

标头映射

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

常规

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

AMQP 标头映射

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

Groovy 脚本

您现在可以使用 hint 或任何其他选项配置 groovy 脚本。 有关更多信息,请参阅 Groovy 配置compile-staticCompilerConfigurationspring-doc.cn

@InboundChannelAdapter变化

现在具有常规 的 alias 属性。 此外,目标组件现在可以以后期绑定方式从其提供的名称 ( options) 解析目标 Bean。 有关更多信息,请参阅 Annotation Support@InboundChannelAdapterchannelvalueSourcePollingChannelAdapteroutputChanneloutputChannelNamespring-doc.cn

XMPP 更改

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

WireTap 延迟绑定

现在可以接受稍后在第一个活动拦截器操作期间解析为目标的 a。 有关详细信息,请参见 Wire TapWireTapChannelInterceptorchannelNameMessageChannelspring-doc.cn

ChannelMessageStoreQueryProvider变化

现在支持 H2 数据库。 有关更多信息,请参阅 Backing Message ChannelsChannelMessageStoreQueryProviderspring-doc.cn

WebSocket 更改

现在公开一个选项,并公开一个选项。 有关更多信息,请参阅 WebSockets 支持ServerWebSocketContainerallowedOriginsSockJsServiceOptionssuppressCorsspring-doc.cn