此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1spring-doc.cadn.net.cn

4.1 和 4.2 之间的更改

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

新组件

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

主要管理/JMX 返工

我们添加了一个新的MetricsFactory策略接口。 此更改以及 JMX 和管理基础架构中的其他更改提供了对管理配置和运行时性能的更多控制。spring-doc.cadn.net.cn

但是,这对(某些)用户环境有一些重要影响。spring-doc.cadn.net.cn

有关完整详细信息,请参阅指标和管理JMX 改进spring-doc.cadn.net.cn

MongoDB 元数据存储

MongoDbMetadataStore现已推出。 有关更多信息,请参阅 MongoDB 元数据存储spring-doc.cadn.net.cn

SecuredChannel 注释

我们引入了@SecuredChannel注释,替换已弃用的ChannelSecurityInterceptorFactoryBean. 有关更多信息,请参阅 Spring Integration 中的安全性spring-doc.cadn.net.cn

SecurityContext增殖

我们引入了SecurityContextPropagationChannelInterceptor对于SecurityContext从一个消息流的线程传播到另一个消息流的线程。 有关更多信息,请参阅 Spring Integration 中的安全性spring-doc.cadn.net.cn

文件拆分器

在 4.1.2 中,我们添加了FileSplitter,它将文本文件拆分为几行。 它现在在int-file:Namespace。 有关更多信息,请参阅文件拆分器spring-doc.cadn.net.cn

Zookeeper 支持

我们在框架中添加了 Zookeeper 支持,以便在集群或多主机环境中运行时提供帮助。 此更改会影响以下功能:spring-doc.cadn.net.cn

有关更多信息,请参阅 Zookeeper 支持spring-doc.cadn.net.cn

线程屏障

新线程<int:barrier/>组件可用,让线程挂起,直到发生某些异步事件。 有关更多信息,请参阅线程屏障spring-doc.cadn.net.cn

STOMP 支持

我们将 STOMP 支持作为入站和出站通道适配器对添加到框架中。 有关更多信息,请参阅 STOMP 支持spring-doc.cadn.net.cn

Codec

一个新的Codec引入了抽象,用于对对象进行编码和解码byte[]. 我们添加了一个使用 Kryo 的实现。 我们还添加了基于编解码器的转换器和消息转换器。 有关详细信息,请参阅编解码器spring-doc.cadn.net.cn

消息 PreparedStatement Setter

一个新的MessagePreparedStatementSetter函数式接口回调可用于JdbcMessageHandler (<int-jdbc:outbound-gateway><int-jdbc:outbound-channel-adapter>) 作为使用SqlParameterSourceFactory以填充PreparedStatement使用requestMessage上下文。 有关详细信息,请参阅出站通道适配器spring-doc.cadn.net.cn

一般更改

本节介绍从 4.1 版到 4.2 版的一般更改。spring-doc.cadn.net.cn

窃听

作为现有selector属性,则<wire-tap/>元素现在支持selector-expression属性。spring-doc.cadn.net.cn

文件更改

有关这些更改的更多信息,请参阅文件支持spring-doc.cadn.net.cn

追加新行

<int-file:outbound-channel-adapter><int-file:outbound-gateway>现在支持append-new-line属性。 如果设置为true,则在写入消息后将向文件附加一行新行。 默认属性值为false.spring-doc.cadn.net.cn

忽略隐藏文件

我们添加了ignore-hidden属性的<int-file:inbound-channel-adapter>以设置是否从源目录中获取隐藏文件。 它默认为true.spring-doc.cadn.net.cn

写作InputStream负载

FileWritingMessageHandler现在也接受InputStream作为有效的消息有效负载类型。spring-doc.cadn.net.cn

HeadDirectoryScanner

您现在可以使用HeadDirectoryScanner与其他FileListFilter实现。spring-doc.cadn.net.cn

上次修改过滤器

我们添加了LastModifiedFileListFilter.spring-doc.cadn.net.cn

监视服务目录扫描程序

我们添加了WatchServiceDirectoryScanner.spring-doc.cadn.net.cn

持久文件列表过滤器更改

AbstractPersistentFileListFilter有一个新属性 (flushOnUpdate),当设置为true调用flush()如果元数据存储实现Flushable(例如,PropertiesPersistingMetadataStore).spring-doc.cadn.net.cn

班级套餐更改

我们移动了ScatterGatherHandler类从org.springframework.integration.handlerorg.springframework.integration.scattergather.spring-doc.cadn.net.cn

TCP 更改

本节介绍对 Spring Integration TCP 功能的一般更改。spring-doc.cadn.net.cn

TCP 序列化程序

The TCPSerializers不再flush()OutputStream. 现在,这由TcpNxxConnection类。 如果直接在代码中使用序列化程序,则可能必须flush()OutputStream.spring-doc.cadn.net.cn

服务器套接字异常

TcpConnectionServerExceptionEvent现在,每当 TCP 服务器套接字上发生意外异常时,都会发布实例(也添加到 4.1.3 和 4.0.7)。 有关详细信息,请参阅 TCP 连接事件spring-doc.cadn.net.cn

TCP 服务器端口

如果将 TCP 服务器套接字工厂配置为侦听随机端口,则现在可以使用以下命令获取作系统选择的实际端口getPort().getServerSocketAddress()也可用。spring-doc.cadn.net.cn

有关详细信息,请参阅“TCP 连接工厂”。spring-doc.cadn.net.cn

TCP 网关远程超时

TcpOutboundGateway现在支持remote-timeout-expression作为现有remote-timeout属性。 这允许根据每条消息设置超时。spring-doc.cadn.net.cn

此外,remote-timeout不再默认为与reply-timeout,这具有完全不同的含义。spring-doc.cadn.net.cn

TCP SSLSession 可用于标头映射

TcpConnection实现现在支持getSslSession()允许您从会话中提取信息以添加到邮件标头。 有关详细信息,请参阅 IP 消息头spring-doc.cadn.net.cn

TCP 事件

现在,每当发生关联异常时,都会发布新事件,例如将消息发送到不存在的套接字。spring-doc.cadn.net.cn

TcpConnectionEventListeningMessageProducer已弃用。 请改用通用事件适配器。spring-doc.cadn.net.cn

有关详细信息,请参阅 TCP 连接事件spring-doc.cadn.net.cn

@InboundChannelAdapter变化

以前,@Poller在入站通道适配器上,默认为maxMessagesPerPoll属性设置为-1(无穷大)。 这与 XML 配置不一致<inbound-channel-adapter/>,默认为1. 注释现在将此属性默认为1.spring-doc.cadn.net.cn

API 更改

o.s.integration.util.FunctionIterator现在需要一个o.s.integration.util.Function而不是reactor.function.Function. 这样做是为了消除对 Reactor 不必要的硬依赖。 此迭代器的任何使用都需要更改导入。spring-doc.cadn.net.cn

Reactor 仍支持Promise网关。 对于不需要依赖项的用户,该依赖项已删除。spring-doc.cadn.net.cn

JMS 更改

本节介绍对 Spring Integration TCP 功能的一般更改。spring-doc.cadn.net.cn

回复侦听器延迟初始化

现在,您可以将 JMS 出站网关中的应答侦听器配置为按需初始化并在空闲期后停止,而不是由网关的生命周期控制。 有关详细信息,请参阅出站网关spring-doc.cadn.net.cn

消息驱动端点中的转换错误

error-channel现在用于转换错误。 在以前的版本中,它们会导致事务回滚和消息重新传递。spring-doc.cadn.net.cn

默认确认模式

当使用隐式定义的DefaultMessageListenerContainer,默认值acknowledge现在transacted. 我们建议使用transacted使用此容器时,以避免消息丢失。 此默认值现在适用于消息驱动的入站适配器和入站网关。 它已经是 JMS 支持的通道的默认值。spring-doc.cadn.net.cn

共享订阅

我们向消息驱动的端点添加了对共享订阅 (JMS 2.0) 的命名空间支持,并且<int-jms:publish-subscribe-channel>. 以前,您必须将侦听器容器连接到<bean/>声明以使用共享连接。spring-doc.cadn.net.cn

有关更多信息,请参阅 JMS 支持spring-doc.cadn.net.cn

条件轮询器

我们现在为动态轮询提供了更大的灵活性。spring-doc.cadn.net.cn

AMQP 更改

本节介绍对 Spring Integration AMQP 功能的一般更改。spring-doc.cadn.net.cn

发布商确认

<int-amqp:outbound-gateway>现在支持confirm-correlation-expression,confirm-ack-channelconfirm-nack-channel属性(其用途类似于<int-amqp:outbound-channel-adapter>).spring-doc.cadn.net.cn

相关数据

对于出站通道适配器和入站网关,如果关联数据是Message<?>,它成为 ack 或 nack 通道上消息的基础,并添加了其他标头。 以前,任何相关数据(包括Message<?>) 作为 ACK 或 NACK 消息的有效负载返回。spring-doc.cadn.net.cn

入站网关属性

<int-amqp:inbound-gateway>现在公开amqp-template属性,以允许对回复的外部 Bean 进行更多控制RabbitTemplate. 您也可以提供自己的AmqpTemplate实现。 此外,您可以使用default-reply-to如果请求消息没有replyTo财产。spring-doc.cadn.net.cn

有关详细信息,请参阅 AMQP 支持spring-doc.cadn.net.cn

XPath Splitter 改进

XPathMessageSplitter (<int-xml:xpath-splitter>) 现在允许配置output-properties用于内部javax.xml.transform.Transformer并支持Iteratormode(默认为true) 用于 XPath 评估org.w3c.dom.NodeList结果。spring-doc.cadn.net.cn

有关详细信息,请参阅拆分 XML 消息。spring-doc.cadn.net.cn

HTTP 更改

本节介绍对 Spring Integration HTTP 功能的一般更改。spring-doc.cadn.net.cn

CORS

HTTP 入站端点 (<int-http:inbound-channel-adapter><int-http:inbound-gateway>) 现在允许 跨域资源共享 (CORS) 的配置。spring-doc.cadn.net.cn

入站网关超时

您可以配置 HTTP 入站门方式,以便在请求超时时返回您指定的状态代码。 默认值为现在500 Internal Server Error而不是200 OK.spring-doc.cadn.net.cn

有关详细信息,请参阅响应状态代码spring-doc.cadn.net.cn

表单数据

我们添加了代理文档multipart/form-data请求。 有关更多信息,请参阅 HTTP 支持spring-doc.cadn.net.cn

网关更改

本节介绍对 Spring Integration Gateway 功能的一般更改。spring-doc.cadn.net.cn

[[网关方法可以返回可完成未来<?>]] ==== 网关方法可以返回CompletableFuture<?>spring-doc.cadn.net.cn

使用 Java 8 时,网关方法现在可以返回CompletableFuture<?>. 看CompletableFuture了解更多信息。spring-doc.cadn.net.cn

MessagingGateway 注释

请求和回复超时属性现在是String而不是Long以允许使用属性占位符或 SpEL 进行配置。 看@MessagingGateway注解.spring-doc.cadn.net.cn

聚合器更改

本节介绍对 Spring Integration 聚合器功能的一般更改。spring-doc.cadn.net.cn

聚合器性能

此版本包括一些聚合组件(聚合器、重排序器等)的性能改进,通过在发布消息时更有效地从组中删除消息。 新方法 (removeMessagesFromGroup) 已添加到消息存储中。 将removeBatchSize属性(默认:100) 以调整每个作中删除的消息数。 目前,JDBC、Redis 和 MongoDB 消息存储支持此属性。spring-doc.cadn.net.cn

输出消息组处理器

使用ref或 inner bean 中,您现在可以直接绑定MessageGroupProcessor. 此外,我们还添加了一个SimpleMessageGroupProcessor返回组中的消息集合。 当输出处理器生成Message<?>,聚合器会单独释放这些消息。 配置SimpleMessageGroupProcessor使聚合器成为消息屏障,其中消息被保留,直到它们全部到达,然后单独释放。 有关详细信息,请参阅聚合器spring-doc.cadn.net.cn

FTP 和 SFTP 更改

本节介绍对 Spring Integration FTP 和 SFTP 功能的一般更改。spring-doc.cadn.net.cn

入站通道适配器

您现在可以指定一个remote-directory-expression在入站通道适配器上,以确定运行时的目录。 有关更多信息,请参阅 FTP/FTPS 适配器SFTP 适配器spring-doc.cadn.net.cn

网关部分结果

当您使用 FTP 或 SFTP 出站网关对多个文件进行作时(使用mgetmput),例外可以 在部分请求完成后发生。 如果出现这种情况,则PartialSuccessException包含部分结果的。 有关详细信息,请参阅 FTP 出站网关SFTP 出站网关spring-doc.cadn.net.cn

委托会话工厂

我们添加了一个委托会话工厂,允许根据某些线程上下文值选择特定的会话工厂。spring-doc.cadn.net.cn

默认 Sftp 会话工厂

以前,DefaultSftpSessionFactory无条件允许与未知主机的连接。 现在可以配置(默认:false).spring-doc.cadn.net.cn

工厂现在需要配置的knownHosts,除非allowUnknownKeys属性是true(默认值:false).spring-doc.cadn.net.cn

消息会话回调

我们引入了MessageSessionCallback<F, T>执行任何自定义Session作与requestMessage上下文中的<int-(s)ftp:outbound-gateway/>.spring-doc.cadn.net.cn

Websocket 更改

我们添加了WebSocketHandlerDecoratorFactory支持ServerWebSocketContainer允许对内部WebSocketHandler. 有关详细信息,请参阅 WebSockets 命名空间支持spring-doc.cadn.net.cn

应用程序事件适配器更改

ApplicationEvent适配器现在可以与payload作为event直接允许省略自定义ApplicationEvent扩展。 为此,我们引入了publish-payloadboolean 属性已引入<int-event:outbound-channel-adapter>. 看SpringApplicationEvent支持了解更多信息。spring-doc.cadn.net.cn