5.0 和 5.1 之间的更改

新组件

以下是 5.1 中的新增功能组件:spring-doc.cadn.net.cn

AmqpDedicatedChannelAdvice

改进的函数支持

java.util.function接口现在在 Framework 组件中具有改进的集成支持。 此外,Kotlin lambda 现在可以用于处理程序和源方法。spring-doc.cadn.net.cn

@LongRunningTest

一个 JUnit 5@LongRunningTestconditional annotation 来检查RUN_LONG_INTEGRATION_TESTSentry 的值为true以确定是应该运行还是跳过 TEST。spring-doc.cadn.net.cn

一般更改

版本 5.1 中进行了以下更改:spring-doc.cadn.net.cn

Java DSL

IntegrationFlowContext现在是一个接口,而IntegrationFlowRegistrationIntegrationFlowContext.spring-doc.cadn.net.cn

新的logAndReply()为方便起见,当您希望在请求-回复配置的流结束时进行记录时,引入了运算符。 这避免了与log()将其视为单向端流分量。spring-doc.cadn.net.cn

为任何NamedComponent在集成流程中,现在基于组件类型,以便从可视化工具、日志分析器和指标收集器中获得更好的可读性。spring-doc.cadn.net.cn

GenericHandler.handle()现在除了MessageHeaderstype 作为第二个参数。spring-doc.cadn.net.cn

Dispatcher 异常

捕获并重新引发的异常AbstractDispatcher现在更加一致:spring-doc.cadn.net.cn

全局通道拦截器

全局通道拦截器现在应用于动态注册的通道,例如通过IntegrationFlowContext当使用 Java DSL 或使用beanFactory.initializeBean(). 以前,在刷新应用程序上下文后创建 bean 时,不会应用拦截器。spring-doc.cadn.net.cn

通道拦截器

ChannelInterceptor.postReceive()未收到消息时不再调用;不再需要检查null Message<?>. 以前,该方法被调用。 如果你有一个依赖于先前行为的拦截器,请实现afterReceiveCompleted()相反,因为该方法被调用,无论是否收到消息。 此外,PolledAmqpChannelPolledJmsChannel以前未调用afterReceiveCompleted()null;他们现在这样做了。spring-doc.cadn.net.cn

ObjectToJsonTransformer

新的ResultType.BYTESmode 的ObjectToJsonTransformer.spring-doc.cadn.net.cn

有关更多信息,请参阅 JSON 转换器spring-doc.cadn.net.cn

集成流:生成的 Bean 名称

从版本 5.0.5 开始,为IntegrationFlow包括 Flow Bean 名称,后跟一个点作为前缀。 例如,如果将流 Bean 命名为flowBean,生成的 Bean 可能被命名为flowBean.generatedBean.spring-doc.cadn.net.cn

有关更多信息,请参阅Working With Message Flowsspring-doc.cadn.net.cn

Aggregator 更改

如果groupTimeout的计算结果为负值,则聚合器现在会立即使组过期。 只null被视为对当前消息不执行任何作的信号。spring-doc.cadn.net.cn

新的popSequence属性以允许(默认情况下)调用MessageBuilder.popSequenceDetails()对于输出消息。 此外,还有一个AbstractAggregatingMessageGroupProcessor现在返回一个AbstractIntegrationMessageBuilder而不是整个Message进行优化。spring-doc.cadn.net.cn

有关更多信息,请参阅 Aggregatorspring-doc.cadn.net.cn

@Publisher 注释更改

从版本 5.1 开始,您必须显式打开@PublisherAOP 功能@EnablePublisher或使用<int:enable-publisher>子元素<int:annotation-config>. 此外,proxy-target-classorder添加了用于调整ProxyFactory配置。spring-doc.cadn.net.cn

文件更改

如果您正在使用FileExistsMode.APPENDFileExistsMode.APPEND_NO_FLUSH您可以提供newFileCallback将在创建新文件时调用。 该回调接收新创建的文件和触发回调的消息。 例如,这可用于编写 CSV 标头。spring-doc.cadn.net.cn

FileReadingMessageSourcenow 不会检查并创建目录,直到其start()被调用。 因此,如果FileReadingMessageSource具有autoStartup = false,则在应用程序启动期间不会发生针对文件系统的故障。spring-doc.cadn.net.cn

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

AMQP 更改

我们使IDTimestamp标头映射更改DefaultAmqpHeaderMapper. 有关更多信息,请参阅 AMQP Message Headers 底部附近的注释。spring-doc.cadn.net.cn

contentTypeHeader 现在已正确映射为 General Headers 映射中的一个条目。 有关更多信息,请参阅 contentType Headerspring-doc.cadn.net.cn

从版本 5.1.3 开始,如果在使用手动确认时发生消息转换异常,并且定义了错误通道,则有效负载为ManualAckListenerExecutionFailedException与额外的channeldeliveryTag性能。 这使得错误流能够确认/nack 原始消息。 有关更多信息,请参阅 入站消息转换spring-doc.cadn.net.cn

JDBC 更改

一个令人困惑的max-rows-per-pollJDBC 入站通道适配器和 JDBC 出站网关上的属性已被弃用,取而代之的是新引入的max-rows财产。spring-doc.cadn.net.cn

JdbcMessageHandler现在支持batchUpdate当请求消息的有效负载是Iterable类型。spring-doc.cadn.net.cn

INT_CHANNEL_MESSAGE表(对于JdbcChannelMessageStore) 已优化。 如果您在此类存储中有大型消息组,则可能需要更改索引。spring-doc.cadn.net.cn

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

FTP 和 SFTP 更改

一个RotatingServerAdvice现在可用于使用入站通道适配器轮询多个服务器和目录。 有关更多信息,请参见入站通道适配器:轮询多个服务器和目录入站通道适配器:轮询多个服务器和目录spring-doc.cadn.net.cn

此外,入站适配器localFilenameExpression实例可以包含#remoteDirectory变量,其中包含正在轮询的远程目录。 比较器的泛型类型(用于对流适配器的获取文件列表进行排序)已从Comparator<AbstractFileInfo<F>>Comparator<F>. 有关更多信息,请参阅 FTP 流入站通道适配器SFTP 流入站通道适配器spring-doc.cadn.net.cn

此外,现在可以为入站通道适配器的同步器提供Comparator. 这在使用maxFetchSize以限制检索的文件。spring-doc.cadn.net.cn

CachingSessionFactory具有新属性testSession如果为 true,则会导致工厂执行test()Session从缓存中签出现有会话时。spring-doc.cadn.net.cn

出站网关 MPUT 命令现在支持包含文件或字符串集合的消息负载。 有关更多信息,请参阅 SFTP 出站网关FTP 出站网关spring-doc.cadn.net.cn

TCP 支持

使用 SSL 时,现在默认启用主机验证,以防止使用受信任证书进行中间人攻击。 有关更多信息,请参阅主机验证spring-doc.cadn.net.cn

此外,现在可以在DefaultTcpSSLContextSupport.spring-doc.cadn.net.cn

Twitter 支持

由于 Spring Social 项目已进入生命周期结束状态,因此 Spring Integration 中的 Twitter 支持已移至 Extensions 项目。 有关更多信息,请参见 Spring Integration Social Twitterspring-doc.cadn.net.cn

JMS 支持

JmsSendingMessageHandler现在提供deliveryModeExpressiontimeToLiveExpression选项来确定 JMS 消息在运行时发送的相应 QoS 选项。 这DefaultJmsHeaderMapper现在允许映射入站JMSDeliveryModeJMSExpirationproperties (属性)true各自setMapInboundDeliveryMode()setMapInboundExpiration()选项。 当JmsMessageDrivenEndpointJmsInboundGateway已停止,则关联的侦听器容器现在已关闭;这将关闭其共享连接和任何使用者。 您可以将终端节点配置为恢复到之前的行为。spring-doc.cadn.net.cn

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

HTTP/WebFlux 支持

statusCodeExpression(以及Function) 现在随RequestEntity<?>作为评估上下文的根对象,因此请求头、方法、URI 和正文可用于目标状态码计算。spring-doc.cadn.net.cn

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

JMX 更改

现在,如果对象名称键值包含 Java 标识符(或句点)中允许的字符以外的任何字符,则会引用这些值.). 例如org.springframework.integration:type=MessageChannel, name="input:foo.myGroup.errors". 这有一个副作用,以前“允许”的名称(带有此类字符)现在将被引用。 例如org.springframework.integration:type=MessageChannel, name="input#foo.myGroup.errors".spring-doc.cadn.net.cn

千分尺支持更改

现在,自定义框架创建的标准 Micrometer meter 变得更加简单。 有关更多信息,请参阅 Micrometer 集成spring-doc.cadn.net.cn

集成图定制

现在可以向IntegrationNodeS 通过Function<NamedComponent, Map<String, Object>> additionalPropertiesCallbackIntegrationGraphServer. 有关更多信息,请参阅 Integration Graphspring-doc.cadn.net.cn

集成全局属性

现在,当DEBUG逻辑电平为org.springframework.integration类别。 有关更多信息,请参阅全局属性spring-doc.cadn.net.cn

receiveTimeout@Poller

@Poller注解现在提供了一个receiveTimeout方便的选项。 看使用@Poller注解了解更多信息。spring-doc.cadn.net.cn