4.1 和 4.2 之间的更改

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

新组件

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

主要管理/JMX 返工

我们添加了一个新的MetricsFactorystrategy 界面。 此更改以及 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

FileSplitter 文件拆分器

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

Zookeeper 支持

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

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

线程屏障

新线程<int:barrier/>组件可用,让线程暂停,直到发生某些异步事件。 有关更多信息,请参见 Thread Barrierspring-doc.cadn.net.cn

STOMP 支持

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

Codec

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

消息 PreparedStatement Setter

新的MessagePreparedStatementSetter函数接口回调可用于JdbcMessageHandler (<int-jdbc:outbound-gateway><int-jdbc:outbound-channel-adapter>) 作为使用SqlParameterSourceFactory要在PreparedStatement使用requestMessage上下文。 有关更多信息,请参阅 Outbound Channel Adapterspring-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

监视 Service Directory Scanner

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

持久文件列表筛选器更改

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

类套餐更改

我们将ScatterGatherHandlerorg.springframework.integration.handlerorg.springframework.integration.scattergather.spring-doc.cadn.net.cn

TCP 更改

本节描述了对 Spring 集成 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()允许您从会话中提取信息以添加到 Message Headers。 有关更多信息,请参阅 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(无穷大)。 这与<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 集成 TCP 功能的一般更改。spring-doc.cadn.net.cn

Reply 侦听器延迟初始化

您现在可以将 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 集成 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 通道上消息的基础,并添加了额外的 Headers。 以前,任何关联数据(包括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 集成 HTTP 功能的一般更改。spring-doc.cadn.net.cn

CORS

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

入站网关超时

您可以配置 HTTP 入站入口方式,以便在请求超时时返回您指定的状态代码。 默认值为 now500 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

[[gateway-methods-can-return-completablefuture<?>]] ==== 网关方法可以返回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 集成聚合器功能的一般更改。spring-doc.cadn.net.cn

聚合商性能

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

输出消息组处理器

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

FTP 和 SFTP 更改

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

入站通道适配器

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

Gateway 部分结果

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

委派 Session Factory

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

默认 sftp 会话工厂

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

工厂现在需要一个配置的knownHosts、文件,除非allowUnknownKeysproperty 为true(默认:false).spring-doc.cadn.net.cn

Message Session 回调

我们引入了MessageSessionCallback<F, T>执行任何自定义Session作与requestMessagecontext 中的<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